Шаблон регулярного выражения для украинских телефонных номеровPython

Программы на Python
Ответить
Anonymous
 Шаблон регулярного выражения для украинских телефонных номеров

Сообщение Anonymous »

Я читаю «Автоматизируйте скучные вещи с помощью Python». Прямо сейчас я застрял на главе 7 (часть Regex). Существует шаблон для американских телефонных номеров, который я хочу реализовать для украинских телефонных номеров.

Украинские номера могут отображаться в разных форматах, например: +380445371428, + 38(044)5371428, +38(044)537 14 28, +38(044)537-14-28, +38(044) 537.14.28, 044.537.14.28, 0445371428, 044-537-1428, (044)537-1428, 044 537-1428 и т.д.

Ниже приведена моя реализация, но она не совсем правильна. Что мне нужно?
  • Когда я копирую некоторые страницы веб-сайта, из всей скопированной информации я хочу извлечь Украинский номер отображается в этом формате (044-537-1428).
phoneRegex = re.compile(r'''(
(^\+38?) # area code(not necessarily)
(\d{3}|\(\d{3}\)) # carrier code(usually starts with 0
(\s|-|\.)? # separator
(\d{3}|\(\d{3}\)) # first 3 digits
(\s|-|\.) # separator
(\d{4}) # last 4 digits
(\s*(ext|x|ext.)\s*(\d{2,5}))? # extension
)''', re.VERBOSE)


шаблон американского номера (согласно книге) выглядит следующим образом

phoneRegex = re.compile(r'''(
(\d{3}|\(\d{3}\))?
(\s|-|\.)
(\d{3})
(\s|-|\.)
(\d{4})
(\s*(ext|x|ext.)\s*(\d{2,5}))?
)''', re.VERBOSE)


Подробнее здесь: https://stackoverflow.com/questions/582 ... ne-numbers
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»