Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
"\z";锚点在Python正则表达式中不起作用_Python_Regex - Fatal编程技术网

"\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'):
?谢谢。。被困在这里面太久了:)