За последние 24 часа нас посетили 19235 программистов и 1624 робота. Сейчас ищут 967 программистов ...

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

Тема в разделе "PHP для новичков", создана пользователем Bridun, 6 ноя 2018.

Метки:
  1. Bridun

    Bridun Новичок

    С нами с:
    2 окт 2017
    Сообщения:
    71
    Симпатии:
    1
    Помогите составить регулярное выражение для поиска номера телефона в тексте в международном формате так, чтобы оставался лишь номер телефона. типа вот так +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$), и удалять пробелы и тире из номера?

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

    PHP:
    1. $descr_full = ("
    2. Карта Сбербанк - 5469550021126526
    3. Оплата Яндекс деньги : +7(903)888-88-88
    4. Номер кошелька: 41001194625877
    5. Киви Кошелек - +79119068771
    6. Кошелек - +380119068771
    7. Тел +972 54 77 22 765
    8. Москва. 31.03.2018г.
    9. Зароботок 3000$
    10. +7-906-107-97-10
    11.  
    12. ");
    13.  
    14. 1) preg_match('~(\+[\d- ()]+)~', $descr_full, $number); //номер тел
    15.  
    16. 2) preg_match('/(\+\d+)?\s*(\(\d+\))?([\s-]?\d+)+/', $descr_full, $number);
    17.  
    18. 3) preg_match('/((\+\d+[\s\-\.]?)?((\(\d+\)|\d+)[\s\-\.]?)?(\d[\s\-\.]?){5,6}\d)/x', $descr_full, $number);
    19.  
    20. echo $phone = $number[1];
     
    #1 Bridun, 6 ноя 2018
    Последнее редактирование: 6 ноя 2018