我有以下正则表达式来匹配必须包含至少4位数的字符串,并且它可能只包含大写字母和特殊字符“。”和“ - ”:
pattern = '^[A-Z.-]*(\d[A-Z.-]*){4,}$'
问题是我在尝试使用上面的模式匹配文档中的单词时出现以下错误:
error: missing ), unterminated subpattern at position 0
我的猜测是它与逃避有关。但逃避似乎抛弃了匹配。因此,例如在以下情况下,我得到一个匹配:
pattern = '^[A-Z.-]*(\d[A-Z.-]*){4,}$'
word = "ABCD-EFG-14-27"
if(re.match(pattern, word)):
print(word + " Match found!")
但是,如果我逃避这个词,我就不再匹配了:
pattern = '^[A-Z.-]*(\d[A-Z.-]*){4,}$'
word = re.escape("ABCD-EFG-14-27")
if(re.match(pattern, word)):
print(word + " Match found!")
假设逃避是错误,我该怎么做才能逃脱这个词后得到一个匹配?
更新: 根据下面的答案,我也尝试了以下但没有运气:
pattern = r'^[A-Z.-]*(?:\d[A-Z.-]*){4,}$'
word = re.escape("ABCD-EFG-14-27")
if(re.match(pattern, word)):
print(word + " Match found!")