gpt4 book ai didi

python - "\z" anchor 在 Python 正则表达式中不起作用

转载 作者:行者123 更新时间:2023-12-01 01:26:34 26 4
gpt4 key购买 nike

我有一个下面的正则表达式,

/\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 字符位于模式末尾。

参见Rexegg.com引用:

✽ In Python, the token \Z does what \z does in other engines: it only matches at the very end of the string.

因此您可以使用

\A(\d{5}[A-Z]{2}[a-zA-Z0-9]{3,7}-TMP|\d{5}[A-Z]{2}\d{3,7}(-?\d{2})*)\Z

请参阅regex demo

请注意,从 Python 3.6 开始,您甚至会遇到异常:

re.error: bad escape \z at position 68

参见Python re docs :

Changed in version 3.6: Unknown escapes consisting of '\' and an ASCII letter now are errors.

关于python - "\z" anchor 在 Python 正则表达式中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53283160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com