2012-03-21 9 views
0

こんにちは私はregexesに新しいです。正規表現は、私が欲しいやり方で一致していません

私は-Z-Z 0-9の任意の数と一致する文字列がある - 私はPythonで次のことを試してみたと_

しかし、それは常に、でも空きスペースにマッチします。誰かがそれがなぜ私に伝えることができますか?

re.match(r'[A-Za-z0-9_-]+', 'gfds9 41.-=,434') 
+2

これは問題なく機能します。 – WeaselFox

+0

私にとってもうまく動作します(Python 2.7.1)。 – teukkam

+0

"gfds9"と一致していると仮定すると、Python 2.7.2でうまく動作します。 – Griwes

答えて

4

あなたの正規表現は、それらの文字の1つ以上と一致します。あなたのテキストは、それらの文字のうちの1つ以上から始まります。したがって、それは一致します。 にする場合は、と一致するのは、テキストの最初から最後まで一致させる必要があります。

re.match(r'^[A-Za-z0-9_-]+$', 'gfds9 41.-=,434') 
+0

+1、私は同じものを書くつもりだった。 –

+0

完璧、ありがとう! – zentenk

0

それ多分それはあなたのために働くだろうための代替手段を試してみてください。

[\w-]+ 

EDIT:

あなたが提供する最初の正規表現も私のために動作しますが。

関連する問題