【发布时间】:2017-01-25 21:50:44
【问题描述】:
我有一些正则表达式的EXAMPLE HERE 可以找到纬度,这在示例中似乎很有效。我将其转移到 python 并使用匹配打印行,然后使用匹配字符串
line = "position: 0.00ft Northing: 728398.54 ft Latitude: 31 38 40.268 N"
Lat = re.findall(r"\d{1,3}.*\s\d{1,2}.*\s\d{1,2}.*N",line.translate(None, '\x00'))
if len(Lat) > 0:
print(line)
latitude = Lat[0]
print(latitude)
# 728398.54 ft Latitude: 31 38 40.268 N
我的正则表达式哪里出错了?
我希望返回:“31 38 40.268 N”
【问题讨论】:
-
请解释为什么您看到的结果是错误的。
-
该行是第二个输出块,匹配是第一个输出块。如您在示例中看到的结果是,我正在寻找纬度值,即“31 38 40.268 N”@DYZ
-
在 regex101 中,您使用的是惰性点匹配模式,
.*?。在这里,你展示了贪婪的点,.*。这些数据似乎与您在 Python 中的数据与您在 regex101 上共享的数据不同。 -
@WiktorStribiżew 这不会影响结果
-
@DYZ 因为我的文本中到处都是空字节,你运行的是什么版本的 python 这可能是我的问题吗?我返回的正是我放在这里的东西