簡體   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