我正在努力学习正则表达式。我在教程中遇到了来自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 :(得分:3)
你的正则表达式是
\w{1,3}\s?\d{1,2}\.?\d{0,2}-\d{1,2}\.?\d{0,2}
表示匹配集合[A-Za-z0-9_]
中的1到3个字符。
\w ==> [A-Za-z0-9_]
这个集合不包含任何空格(即使它已经包含,至少对于这个例子也没有任何影响。)
所以匹配
xom 91.43-91.44
并遗漏prices
。
您可以将其显示为 here