我创建了一个正则表达式来匹配美国格式的电话号码,它读起来像
Pattern.compile("\\(?(\\d{3})\\)?-?\\s?(\\d{3})-(\\d{4})")
,它完成了它的工作,但它也与不需要的字符串相匹配,例如它为 103-3231823-1255288 返回231-823-1255
时,它实际上不应该,我哪里错了?
是的,我正在编写Java代码......
答案 0 :(得分:2)
您可以使用$
将正则表达式绑定到字符串的末尾。请参阅http://docs.oracle.com/javase/tutorial/essential/regex/bounds.html。
答案 1 :(得分:0)
请列出您想要接受的内容。这可以帮助您获得您真正想要的东西。你可能想用空格检查电话号码的开始和终止,但它真的取决于你接受什么和不接受什么。
答案 2 :(得分:0)
\\b after the digits did the job...
即。为我们的字符串设置边界
例如(\\b\\d{4}\\b)
,谢谢Oli Charlesworth ......