2012-07-23 4 views
5

線は、正規表現を介して検証されなければならない正規表現に一致するすべてが、空ではない

  1. ライン任意の文字、スペース、数字を含めることができ、浮遊。

  2. 行は空白

すべきではない私はこれを試してみました:

[A-Za-z0-9~`!#$%^&*()_+-]+ //thinking of all the characters 

任意の代替ソリューションは

+1

'で何が問題になっていますか+'。? –

+3

それでは、線が空でない限り、絶対に何かが許されていると言っていますか?なぜあなたは、あなたの言語が持っていると確信している 'length'関数とは対照的に、これに対して正規表現を使いたいのですか? – ruakh

+1

正規表現が必要ですか?行をトリムして空の文字列でないかどうかチェックするのはなぜですか? –

答えて

0

試して参考になります:それがあるべき

[.]+ 

任意の文字アクター、少なくとも1人。

+6

-1、申し訳ありません。ほとんどの正規表現エンジンでは、 '[。]'は実際の期間にのみマッチします。あなたは '.'を意味します。 – ruakh

2

行が^$と一致するかどうかを確認するだけで空白になり、それを失敗として使用することができます。そうでない場合は合格になります。

6

試してみてください。re.match()とPythonで[^()]

>>> re.match(r"[^()]", '') 
    >>> re.match(r"[^()]", ' ') 
    <_sre.SRE_Match object at 0x100486168> 
10

ちょうど空白

/.*\S.*/ 

以上のものを含む行を一致させるために、これを試してみてくださいこれは=

/を意味し、区切り文字
.* =ゼロまたは改行何でもより多くの
空白を除く\S =何も(改行、タブ、スペース)

はそうあなたが改行が、改行+何かない空白+何もなく、
マッチ何かを得る

空白のみの行が空白でないと計算された場合、そのルールを/.+/に置き換えます。これは1つ以上のものと一致します。

+0

これは正解です! – calbertts

-1

この1つは空の文字列すべてにマッチではなくなります。

^(\s|\S)*(\S)+(\s|\S)*$ 

に空白文字列を空の文字のみ(タブ、スペースなど)を含むものです。

0

はこれを試してみてください:空である属性を持たないタグを検索しようとしたときに

^.+$ 

私は、PythonのBeautifulSoupでこれを使用していました。それはうまくいった。以下の例は次のとおりです。

# get first 'a' tag in the html content where 'href' attribute is not empty 
parsed_content.find("a", {"href":re.compile("^.+$")}) 
0

少なくとも1文字ですべての行にマッチします。この1:

(.*?(\n)) 
関連する問題