我为正则表达式编写了代码,用于选择包含电话号码的行。我必须为电话号码创建一个表达式,但它可能有 - 或。在数字之间,它可能有也可能没有扩展名。我无法弄清楚并没有提交作为我的作业......我只是想知道它是如何做的,因为我可能会在学期结束时参加考试。
718-951-5000, 718.951.5000, (718)-951-5000
我的代码
"(^(\([2-9]\\d{2}\)|[2-9]\\d{2})[- .]?\d{3}[- .]?\\d{4}$)|(^(\([2-9]\\d{2}\)|[2-9]\\d{2})[- .]?\d{3}[- .]?\\d{4}[xX]\\d{1,4}$)"
我的错误 RETest1.java:4:错误:非法转义字符
"(^(\([2-9]\\d{2}\)|[2-9]\\d{2})[- .]?\\d{3}[- .]?\\d{4}$)|(^(\([2-9]\\d{2}\)|[2-9]\\d{2})[- .]?\\d{3}[- .]?\\d{4}[xX]\\d{1,4}$)"
^
答案 0 :(得分:1)
它可能不是最漂亮的,但这里有一个有效:
"^((\\([2-9]\\d{2}\\)|[2-9]\\d{2})(-\\d{3}-\\d{4}|\\.\\d{3}\\.\\d{4})([Xx] ?\\d{1,4})?)$"
答案 1 :(得分:0)
[- .]?\d{3}[- .]?
您忘记了\
\d
应该是:
"(^(\([2-9]\\d{2}\)|[2-9]\\d{2})[- .]?\\d{3}[- .]?\\d{4}$)|(^(\([2-9]\\d{2}\)|[2-9]\\d{2})[- .]?\\d{3}[- .]?\\d{4}[xX]\\d{1,4}$)"