Python regex为何离开

Python regex为何离开,python,regex,Python,Regex,我想学regex。我在教程中遇到了这段代码,这段代码来自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.0

我想学regex。我在教程中遇到了这段代码,这段代码来自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']
我得到了匹配的模式。我无法理解的是,为什么示例行中的价格不匹配?这是怎么被跳过的

提前感谢。

您的正则表达式是

\w{1,3}\s?\d{1,2}\.?\d{0,2}-\d{1,2}\.?\d{0,2}
这意味着集合中的1到3个字符之间的匹配
[A-Za-z0-9_33;]

\w ==> [A-Za-z0-9_]
此集合不包含任何空格(即使它包含空格,至少在本例中不会有任何效果)

所以它是匹配的

xom 91.43-91.44
而不考虑价格


您可以将其可视化

,因为
price
后面没有IP地址或数字或其他任何东西。为什么您认为“价格”应该匹配?我对reg ex的许多基本概念中的一个有误。我认为它将遍历整个字符串,从字符串中的第一个字符开始查找匹配项。我错了。我现在看到它将根据我们编写的reg ex进行匹配。