2

我为选择包含电话号码的行编写了正则表达式代码。我必须为电话号码创建一个表达式,但它可能有 - 或 . 在数字之间,它可能有也可能没有扩展名。我想不通也没有提交作为我的家庭作业......我只是想知道它是如何正确完成的,因为我可能会在学期末的考试中得到它。

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}$)"
                       ^
4

2 回答 2

1

它可能不是最漂亮的,但这是一个有效的:

"^((\\([2-9]\\d{2}\\)|[2-9]\\d{2})(-\\d{3}-\\d{4}|\\.\\d{3}\\.\\d{4})([Xx] ?\\d{1,4})?)$"
于 2018-04-15T06:32:55.987 回答
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}$)"

于 2012-09-19T20:22:00.410 回答