Номер телефона. Третий символ должен быть не 5 или 6, но все равно должен быть цифрой 0-9 - PullRequest
0 голосов
/ 25 января 2019

Это всего лишь учебное упражнение.

enter image description here

Я хочу сопоставить первые два телефонных номера. Но не последний 3.

В последнем у вас есть буква в качестве третьего символа.

[\d]{3}[^56][\d]{5}

Это выберет те, без 5 или 6. Но он также выбрал бы последний с "D". Как мне решить это это?

Насколько я знаю, в REGEX нет оператора AND.

[\d]{3}([[^56]&[\d])[\d]{5} <- Не существует </p>

1 Ответ

0 голосов
/ 25 января 2019

Вы можете ввести положительный взгляд вперед после употребления трех символов, чтобы убедиться, что следующий символ является цифрой с этим регулярным выражением,

\b[\d]{3}(?=\d)[^56][\d]{5}\b
         ^^^^^^

Этот запрос вначале обеспечит, чтобы символ был цифрой, и отклонитсовпадение, если оно равно 5 или 6

Демо 1

Другим способом его решения будет использование [0-47-9] вместо [^56] и используйте это регулярное выражение вместо

\b[\d]{3}[0-47-9][\d]{5}\b

Демо 2

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