Как я могу проверить эти двойные регулярные выражения - PullRequest
0 голосов
/ 11 ноября 2018

Я хочу проверить, имеет ли номер телефона 8 цифр и не начинается с нуля. Я использовал этот шаблон ^[1-9][0-9]{7} для этой цели, также я хочу проверить, что эти 8 чисел не дублируются полностью, как 11111111 или 77777777, для которых я использую этот шаблон: (\w)\1{7,}, отдельно, чтобы проверить, что число не не соответствует ему.

Теперь я хочу объединить эти шаблоны регулярных выражений вместе, но не могу. Я пытаюсь объединить эти шаблоны таким образом: (?=([1-9][0-9]{7}))(?:(?!(\w1{7,}))) но, к сожалению, это не работает.

Обратите внимание, что мне нужно использовать один шаблон Regex и мне нужно объединить эти два шаблона в один.

Может ли кто-нибудь помочь мне, пожалуйста?

1 Ответ

0 голосов
/ 11 ноября 2018

Это только первый символ, который вам нужно проверить, похоже, - захватить его в группу, затем использовать отрицательный прогноз для этой группы, повторенный 7 раз, чтобы убедиться, что вся строка не является одним и тем же числом, а затем закончить с \d{7}, чтобы соответствовать другим 7 цифрам:

^([1-9])(?!\1{7})\d{7}$

https://regex101.com/r/DbTtAJ/1

(обратите внимание, что [0-9] упрощается до \d)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...