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

Помогите составить регулярное выражение для поиска номера телефона в тексте в международном формате , чтобы оставался лишь номер телефона. типа вот так +79119068771

Например, есть разный текст:
Карта Сбербанк - 5469550021126526
Оплата Яндекс деньги :+7(903)888-88-88
Номер кошелька: 41001194625877
Киви Кошелек - +79119068771
Кошелек - +380119068771
Тел +972 54 77 22 765
Москва. 31.03.2018г.
Зароботок 3000$
+7-906-107-97-10

Как составить регулярное выражение, чтобы исключить из текста дату (31.03.2018г.), а также вот такие цифры (3000$), и удалять пробелы и тире из номера?

Делаю вот так:

preg_match('~(\+[\d- ()]+)~', $descr_full, $number); //парсим номер тел

preg_match('/(\+\d+)?\s*(\(\d+\))?([\s-]?\d+)+/', $descr_full, $number);

preg_match('/((\+\d+[\s\-\.]?)?((\(\d+\)|\d+)[\s\-\.]?)?(\d[\s\-\.]?){5,6}\d)/x', $descr_full, $number);

echo $phone = $number[1];
  • Вопрос задан
  • 673 просмотра
Решения вопроса 1
@xtress
Web-dev
https://regex101.com/r/4ycU8j/1
p.s.
Если текст идёт сплошняком (как я его скопировал), то - заменить `$` на `\n`.
p.p.s.
Ну и да, если текст идёт сплошняком - `preg_match_all`
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы