"\z";锚点在Python正则表达式中不起作用
我有一个低于正则表达式的表达式"\z";锚点在Python正则表达式中不起作用,python,regex,Python,Regex,我有一个低于正则表达式的表达式 /\A(\d{5}[A-Z]{2}[a-zA-Z0-9]{3,7}-TMP|\d{5}[A-Z]{2}\d{3,7}(\-?\d{2})*)\z/ 我正在检查下面的字符串。第一个和第三个应该返回一个匹配,我想第二个是不匹配。但我没有在所有3个方面都找到匹配。我的正则表达式错了吗 99844RI1800001 99806CAAUSJ-TMP1 99844RI1800002 Pythonre不支持\z,它支持\z作为匹配字符串最末端的等效模式。您的模式要求文本zc
/\A(\d{5}[A-Z]{2}[a-zA-Z0-9]{3,7}-TMP|\d{5}[A-Z]{2}\d{3,7}(\-?\d{2})*)\z/
我正在检查下面的字符串。第一个和第三个应该返回一个匹配,我想第二个是不匹配。但我没有在所有3个方面都找到匹配。我的正则表达式错了吗
99844RI1800001
99806CAAUSJ-TMP1
99844RI1800002
Python
re
不支持\z
,它支持\z
作为匹配字符串最末端的等效模式。您的模式要求文本z
char位于模式的末尾
见参考资料:
✽ 在Python中,标记\Z
与其他引擎中的\Z
相同:它只在字符串的最末端匹配
因此,您可以使用
\A(\d{5}[A-Z]{2}[a-zA-Z0-9]{3,7}-TMP|\d{5}[A-Z]{2}\d{3,7}(-?\d{2})*)\Z
见
请注意,从Python 3.6开始,您甚至会遇到一个异常:
re.error: bad escape \z at position 68
见:
在版本3.6中更改:由'\'
和ASCII字母组成的未知转义现在是错误
Python
re
不支持\z
,如果不支持,它将\z
作为等效模式。endswith('-TMP1'):
?谢谢。。被困在这里面太久了:)