Как сопоставить последние 9 цифр числа с пробелом - PullRequest
0 голосов
/ 03 декабря 2018

Я пытался сопоставить только 9 цифр телефонного номера

У меня есть несколько входов

+33123456789

или

0123456789

или

+33 01 23 45 67 89

или

01 23 45 67 89

Я хочу один вывод 123456789

В настоящее время я нашел, как сопоставить +33123456789 или 0123456789

с (\ d {9}$)

Но я не могу найти способ сопоставления с пробелом между

спасибо

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Вы можете использовать

(?:\+\d{2}\ ?)?(\d[\d ]*\d)

и использовать первую группу, см. демонстрацию на regex101.com .

0 голосов
/ 03 декабря 2018

Вы можете использовать повтор совпадения цифры с последующим 0+ раз через пробел 8 раз.Для последней цифры вы также можете сопоставить 0+ раз с пробелом и цифрой и захватить их в группе.

После совпадения с захваченной группой 0 * умножить на пробел и подтвердить конец строки.

((?:\d *){8} *\d) *$

Пояснение

  • ( Группа захвата
    • (?:\d *){8} Повторите 8 раз группу без захвата, котораясоответствует цифре и 0+ разу пробелу
    • *\d соответствует 0+ разу пробелу, за которым следует цифра
  • ) Закрыть группу без захвата
  • *$ Совпадение 0+ раз с пробелом и утверждение конца строки

9 цифр, включая пробелы между ними, находятся в первой группе захвата.

Regex demo

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