我需要一个匹配电话号码的正则表达式,这些电话号码不是全部由相同的号码组成。我正在谈论一个10位数的电话号码,看起来像这样(123)123-1234。我已经看到了与 相同的手机相匹配的模式,但我试图匹配相反的模式。
我已经想到了这个哦,如此接近,但并不完全存在。
^\((\d)(?!\1{2})\d{2}\)(?!\1{3})\d{3}-(?!\1{4})\d{4}$
唯一失败的地方是当区号完全相同时,其他一切看起来都很好。所以它会在这样的事情上失败(888)123-1234,但会传递(886)123-1234
如何让它接受最后一次支持?
我见过类似的问题
但是这个并不代表()和 - ,它也与我想要的相反。
和
Regex to block a phone number that contains same digit more than 4 times successively?
这种看起来很有希望,但它并不能解释()和 - 。
答案 0 :(得分:1)
您可以使用此负前瞻性正则表达式:
^\((\d)(?!\1{2}\)\1{3}-\1{4}$)\d{2}\)\d{3}-\d{4}$
如果从头到尾重复相同的数字,则否定前瞻(?!\1{2}\)\1{3}-\1{4}$)
只会使匹配失败。