Регулярное выражение для совпадения идентичных повторяющихся цифр в телефонных номерах

0

Извините, если заголовок не был достаточно дескриптивным. У меня есть куча телефонных номеров в базе данных mysql. Не знаю, есть ли запрос для этого или лучше использовать что-то вроде preg_match с PHP. Но мне нужно искать, используя шаблон:

Заканчивается XXXX или содержит 4XXX

Х означает одно и то же число. Поэтому, если я искал Ends с XXXX Im, ища любое число, например:

671-0000

421-5555

789-1111

Если я ищу Contains 4XXX, то Im ищет любое число, например:

345-4111

156-4777

По какой-то причине я не могу обмотать мозг вокруг этого. Похоже, это было бы довольно легко. Может ли кто-нибудь помочь? Ценить это!

Теги:
preg-match

1 ответ

0
Лучший ответ

Самое простое выражение для шаблона NXXX:

\d(\d)\1{2}

Если используемый вами механизм регулярных выражений поддерживает такое обратное отслеживание с помощью \1, которое ссылается на любую цифру, находящуюся в (\d) месте, то это должно работать так же, как в этом примере.

Вы также можете адаптировать это для шаблона XXXX, например:

(\d)\1{3}

Где эти три повторяющиеся, одинаковые цифры после первого.

  • 0
    Спасибо за ответ! Прежде чем я отмечу это как ответ, последний вопрос, содержащий к этому. Есть ли способ проверить наличие дубликата или сам по себе? Например, скажем, кто-то ищет так: 333-X123. Есть ли способ проверить, есть ли только 1 X и только поиск, если у них есть XX или XXX или XXXX?
  • 0
    333-\d123 будет соответствовать любому X, если вы это имеете в виду. Для повторного X вам нужно захватить его и вернуться к нему.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню