Как правильно реализовать регулярку для номеров

Вот есть регулярное выражение
^((8|\\+7|\\+380|\\+375|\\+373)[\\- ]?)?(\\(?\\d{3}\\)?[\\- ]?)?[\\d\\- ]{7,10}$
пробую записать его в оптимизатор регулярных выражений но мне возвращает

preg_match (): Ошибка компиляции: закрывающая скобка со смещением 36 отсутствует.

Как вообще правильно строить регулярку?


Ответы (2 шт):

Автор решения: phony51

Регулярка для номеров РФ:

((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}
→ Ссылка
Автор решения: Qwertiy
  1. Вероятно, в оптимизатор надо совать не строку с дополнительным экранированием, а саму регулярку

    ^((8|\+7|\+380|\+375|\+373)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$
    
  2. Он всё равно не работает, потому что говорит ошибку, хотя регулярка синтаксически корректная.

  3. А смысл её оптимизировать?

  4. Здесь не проверяется суммарное количество цифр в номере - вероятно, это баг.

  5. Дефис экранировать обычно не требуется.

→ Ссылка