2016-05-04 9 views
-1

私はこのコードをtutorialから、このコードをsentdex youtubeチャンネルから見つけました。正規表現を覚えようとしていた理由

import re 

ExampleLine = "prices xom 91.43-91.44/vz50-50.01/s 7.23-7.24" 
regex = re.findall(r"\w{1,3}\s?\d{1,2}\.?\d{0,2}-\d{1,2}\.?\d{0,2}", ExampleLine) 
print(regex) 

プリント:

['xom 91.43-91.44', 'vz50-50.01', 's 7.23-7.24'] 

私はマッチングパターンを得ます。私が納得しないことは、ExampleLineの価格が一致しない理由です。どのようにスキップされていますか?事前に

感謝..

+0

price'は、IPアドレスや番号または何 –

+0

が続かない 'ので、視覚化することができますか? –

+0

私はreg exの多くの基本的な概念の一つを持っていました。私はそれが文字列の最初の文字から始まる一致を探して文字列全体を通過すると思った。私は間違っていた。私は今それが私達が書くreg exに基づいて一致することを見る。 –

答えて

3

あなたの正規表現は、それがセット[A-Za-z0-9_]から1〜3文字の間の一致を意味

\w{1,3}\s?\d{1,2}\.?\d{0,2}-\d{1,2}\.?\d{0,2} 

です。

\w ==> [A-Za-z0-9_] 

このセットにはスペースは含まれていません(この例では、少なくともこの例では効果はありませんでした)。

だから、

xom 91.43-91.44 

を照合し、pricesを残しています。あなたは「物価」は一致する必要があることを信じていないのはなぜ

あなたはそれがhere

関連する問題