说我有几个字符串,例如:
N00E001
N00W001
N00E002
在每个字符串中找到两组数字的最佳正则表达式是什么?
我对正则表达式不是最好的。以下是我目前正在使用的内容:(\d+)[W|E](\d+)
。
答案 0 :(得分:2)
"(\d+)[W|E](\d+)"
也会匹配"N00|001"
。
所以
"(\d+)[WE](\d+)"
应该没问题。
如果您始终使用完全相同的格式,则可以使用限制性更强的正则表达式:
"\A[NS]\d{2}[WE]\d{3}\Z"
这将匹配:
整场比赛应该是完整的比赛。例如,"Location N00W001"
不匹配。
import re
strings = ["N00E001", "N00W001", "N00E002"]
pattern = re.compile("\A[NS]\d{2}[WE]\d{3}\Z")
print all(pattern.match(string) for string in strings)
# True