【发布时间】:2012-03-31 11:38:14
【问题描述】:
我在我的代码中使用了这个正则表达式代码:
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 不起作用,其他错误的事情也不起作用。 但是这个正则表达式的问题是,当我的第一个字符是正确的并且我在它后面随机输入任何内容时,它仍然会打印“是”。我的意思是这样的:0481/9874214879516874 我认为因为正则表达式匹配它返回的前 11 个字符,所以它匹配并且它后面的内容并不重要。
我该如何解决这个问题?
【问题讨论】:
-
我知道这似乎离题了,但是...这些是什么电话号码?
-
啊...
\d{3, 4}真的把我搞砸了。与此同时,有人发布了$主播。你现在应该去投票了。