正则表达式以匹配美国电话号码

use*_*218 1 regex

正则表达式^((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}$匹配形式的字符串XXX-XXX-XXXXXXX-XXXX(我失去了一些东西?).

这不,但是,比赛(XXX) XXX-XXXX(XXX) XXX-XXX-XXXX也(我需要它来搭配).

你能帮我解决它,这样它的格式相匹配
     XXX-XXX-XXXX, XXX-XXXX, (XXX) XXX-XXXX, (XXX) XXX-XXXX
也不会使它匹配,我不希望其他字符串格式?

Bog*_*tyr 6

你的规格有点令人困惑.你的最后两个案例看起来是一样的:
XXX-XXX-XXXX
XXX-XXXX
(XXX)XXX-XXXX
(XXX)XXX-XXXX

(看起来你正试图匹配一个电话号码,是吗?)假设你的最后一个案例是"(XXX)XXX-XXXX"(区号和常规号码之间没有空格,我认为是"?"你的RegExp几乎是正确的,只需在区号括号前添加两个反斜杠,这样就可以将它们匹配为普通字符而不是特殊的分组字符:

^((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}$

请注意,你的正则表达式可能没有正确通过,我注意到堆栈溢出从RE模式中删除了一个反斜杠,我不得不键入一个双反斜杠"\\"以便在消息中得到一个反斜杠