2011-09-30 17 views
28

私はJavaScriptの正規表現で私の経験をPythonに移そうとしています。Pythonの正規表現の文字列は一致していますか?

私はこの作業を取得しようとしている:

print(re.match('e','test')) 

...しかし、それはNoneを印刷しません。私がしている場合:

print(re.match('e','est')) 

これはデフォルトでは文字列の先頭に一致しますか?それが一致すると、どのように結果を使用するのですか?

最初の試合はどのようにすればよいですか? Pythonサイトよりも優れた文書がありますか?

答えて

53

re.matchは暗黙的に正規表現の先頭に^を追加します。つまり、文字列の先頭にのみ一致します。

re.searchすべての位置で再試行します。

一般的に言えば、re.searchを使用し、必要なときに^を明示的に追加することをおすすめします。

http://docs.python.org/library/re.html

+1

微妙な動作。 –

9

ドキュメントだと思う明らかです。

re.match(パターン、文字列[、フラグ])

If zero or more characters **at the beginning of string** match the 

正規表現パターン¶、対応するMatchObject インスタンスを返します。文字列がパターンと一致しない場合はNoneを返します。ノート は、これが長さゼロのマッチとは異なることに注意してください。

関連する問題