如何匹配此正则表达式,以便它不超过我设置的数字限制?

时间:2012-03-18 18:50:59

标签: java regex regex-negation

我创建了一个正则表达式来匹配美国格式的电话号码,它读起来像

Pattern.compile("\\(?(\\d{3})\\)?-?\\s?(\\d{3})-(\\d{4})"),它完成了它的工作,但它也与不需要的字符串相匹配,例如它为 103-3231823-1255288 返回231-823-1255时,它实际上不应该,我哪里错了?

是的,我正在编写Java代码......

3 个答案:

答案 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 ......