0
说我有几个字符串分隔的数字,如:第2个小组由特定字符
N00E001
N00W001
N00E002
什么是要找到数字这两个群体中的每个串最好的正则表达式?
我不是最好的正则表达式。这是我目前的工作:(\d+)[W|E](\d+)
。
说我有几个字符串分隔的数字,如:第2个小组由特定字符
N00E001
N00W001
N00E002
什么是要找到数字这两个群体中的每个串最好的正则表达式?
我不是最好的正则表达式。这是我目前的工作:(\d+)[W|E](\d+)
。
"(\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
那么,有没有与你的正则表达式的任何问题吗? – Kasramvd
您不需要选项内的'|'('[]')。 – Jules
字符串是否始终是孤立的,或者它们在较大的字符串中找到('blah blah N00E001 blah'')?字符串是否总是七个字符?是否有像'N00X001'这样的字符串,你不想匹配?如果你的字符串总是7个字符,那么'EW'中的if [3]:numbers = s [1:3] + s [4:]'。如果所有的字符串都很好,那么你可以放弃if子句。 –