gpt4 book ai didi

Python phonenumber 正则表达式不够好

转载 作者:太空宇宙 更新时间:2023-11-03 13:50:41 26 4
gpt4 key购买 nike

我在我的代码中使用了这个正则表达式代码:

pattern = re.compile('\d{3,4}(\/?)(\d{6,6})')
m= pattern.match('0481/987421')
if m:
print "yes"
else:
print "no"

这是一个适用于电话号码的正则表达式:dddd/dddddddd所以首先是 3 或 4 位数字,然后是斜线或不斜线,然后正好是 6 位数字。它工作正常,例如 21/484135 不起作用,其他错误的东西也不起作用。但是这个正则表达式的问题是,当我的第一个字符是正确的并且我在它后面随机输入任何内容时它仍然会打印"is"。我的意思是这样的:0481/9874214879516874我认为因为正则表达式匹配它返回的前 11 个字符,所以它后面的内容无关紧要。

我该如何解决这个问题?

最佳答案

你需要锚定你的表情。在它的末尾添加一个 $\Z 以确保后面没有任何内容。您还可以添加 ^ 以将其锚定在字符串的开头,尽管与 match() 一起使用时不需要这样做。

pattern = re.compile(r"^\d{3,4}/?\d{6}\Z")

关于Python phonenumber 正则表达式不够好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9711664/

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