繁体   English   中英

正则表达式匹配并非由所有相同号码组成的电话号码

[英]Regex to match a phone number that is not composed of all the same number

我需要一个正则表达式来匹配并非全部由相同号码组成的电话号码。 我说的是一个 10 位数的电话号码,看起来像这样 (123)123-1234。 我已经看到了将匹配都是一样的手机模式,但我想匹配相反。

我想出了这个,非常接近,但还没有完全到位。

^\\((\\d)(?!\\1{2})\\d{2}\\)(?!\\1{3})\\d{3}-(?!\\1{4})\\d{4}$

唯一失败的地方是当区号都是相同的数字时,其他一切似乎都很好。 所以它会在这样的事情上失败(888)123-1234,但会通过(886)123-1234

我如何让它接受最后的坚持?

我看过类似的问题

如何验证电话号码,以便它不允许在java中使用所有相同的数字,例如99999999999或11111111111

但是这个没有考虑到 () 和 -,它也与我想要的相反。

正则表达式阻止包含相同数字的电话号码连续超过 4 次?

这种看起来很有希望,但它没有考虑到 () 和 -。

您可以使用此否定前瞻正则表达式:

^\((\d)(?!\1{2}\)\1{3}-\1{4}$)\d{2}\)\d{3}-\d{4}$

正则表达式演示

负前瞻(?!\\1{2}\\)\\1{3}-\\1{4}$)只会在从头到尾重复相同的数字时匹配失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM