【发布时间】:2016-11-11 16:54:37
【问题描述】:
我有这个字符串:
+1(333) 456-7890
我想用正则表达式匹配它。这就是我现在的正则表达式模式:
Pattern p1 = Pattern.compile("((\\+{0,}[0-9]{0,3}( |-)?)?)(\\(?[0-9]
{3}\\)?|[0-9]{3}( |-)?)([0-9]{3}( |-)?)([0-9]{4}|[a-zA-Z0-9]{7})");
它应该能够识别任何中间可能有破折号或空格的电话号码模式,至少可以是 10 位数字(或字母),没有国家代码,最多 13 位数字有国家代码。
我的模式似乎与某些情况相匹配,而不是与前面所述的其他情况相匹配。我真的很难过,任何帮助将不胜感激。
【问题讨论】:
-
这是在 Java 中吗?你应该谷歌,“在线可视化 Java 正则表达式测试器”或类似的东西。有很多在线工具可以帮助解决这个问题。
-
不是我问的,但谢谢
-
我想看看是否有人可以看一下它并了解它为什么不起作用
-
我知道,您表示您的正则表达式有问题,尽管您没有问任何问题。 ;) 我只是提供了一个方便的工具,可以让你自己解决它。这只是一个建议。我确实在您的正则表达式上尝试了其中一个在线工具,它声称它有问题并引用了问题发生的位置。但是由于您不清楚您使用的是哪种语言,所以就目前而言。不同语言的正则表达式约定可能会有所不同。
-
它在 java 中有关于如何修复它的任何想法吗?