Коды мобильных операторов Украины в 2020 и регулярные выражения для них

В Украине на 2020 год существует три крупных мобильных оператора и три не больших.

 

Для полного понимания того, что описано далее,  сразу оговорю несколько моментов

Используется Python 3 верcии и соответственно регулярные выражения будут под эту версию, будет ли это работать с предыдущими версиями, я не знаю

Для работы с регулярными выражениями будет использована встроенная библиотека re

Х — любая цифра

phone — номер телефона в формате 380ХХХХХХХХХ

 

Коды и регулярные выражения для python больших операторов:

Kyivstar:

Коды сети мобильной связи — 067,068, 096, 097, 098. Количество абонентов —  26,4 млн (в третьем квартале 2019).

КодНомер полностьюРегулярное выражение
09838098XXXXXXXre.match(r'^38098[0-9]{7}$', phone)
09738097XXXXXXXre.match(r'^38097[0-9]{7}$', phone)
09638096XXXXXXXre.match(r'^38096[0-9]{7}$', phone)
06838068XXXXXXXre.match(r'^38068[0-9]{7}$', phone)
06738067XXXXXXXre.match(r'^38067[0-9]{7}$', phone)

Регулярное выражение для определения оператора Киевстар  с учетом всех его кодов:

re.match(r'^3806[7,8][0-9]{7}$|^3809[6-8][0-9]{7}$', phone)

 

Lifecell:

Код сети мобильной связи — 063, 073, 093 . Количество абонентов — 6,9 млн абонентов (в третьем квартале 2019).

КодНомер полностьюРегулярное выражение
06338063XXXXXXXre.match(r'^38063[0-9]{7}$', phone)
07338073XXXXXXXre.match(r'^38073[0-9]{7}$', phone)
09338093XXXXXXXre.match(r'^38093[0-9]{7}$', phone)

Регулярное выражение для определения оператора Лайфселл с учетом всех его кодов:

re.match(r'^380[6,7,9]3[0-9]{7}$', phone)

 

Vodafone (MTS):

Код сети мобильной связи — 050, 066, 095, 099 . Количество абонентов — 19,6 млн абонентов (в первом квартале 2019).

КодНомер полностьюРегулярное выражение
05038050XXXXXXXre.match(r'^38050[0-9]{7}$', phone)
06638066XXXXXXXre.match(r'^38066[0-9]{7}$', phone)
09538095XXXXXXXre.match(r'^38095[0-9]{7}$', phone)
09938099XXXXXXXre.match(r'^38099[0-9]{7}$', phone)

Регулярное выражение для определения оператора Водафон (МТС)с учетом всех его кодов:

re.match(r'^38050[0-9]{7}$|^38066[0-9]{7}$|^3809[5,9][0-9]{7}$', phone)

 

Trimob:

Код сети мобильной связи — 091. Количество абонентов — 250 тысяч (20 апреля 2018 года).

КодНомер полностьюРегулярное выражение
09138091XXXXXXXre.match(r'^38091[0-9]{7}$', phone)

Регулярное выражение для определения оператора Тримоб с учетом всех его кодов

re.match(r'^38091[0-9]{7}$|^3809[6-8][0-9]{7}$', phone)

 

PEOPLEnet :

Код сети мобильной связи — 092. Количество абонентов — более 1 млн (конец 2019).

КодНомер полностьюРегулярное выражение
09238092XXXXXXXre.match(r'^38092[0-9]{7}$', phone)

Регулярное выражение для определения оператора PEOPLEnet с учетом всех его кодов

re.match(r'^38092[0-9]{7}$|^3809[6-8][0-9]{7}$', phone)

 

Интертелеком:

КодНомер полностьюРегулярное выражение
09438094XXXXXXXre.match(r'^38094[0-9]{7}$', phone)

Регулярное выражение для определения оператора Интертелеком с учетом всех его кодов

re.match(r'^38094[0-9]{7}$|^3809[6-8][0-9]{7}$', phone)

 

 

Ну и пример функции, которая вернёт имя мобильного оператора, если ей передать номер телефона

def get_operator(phone):
	phone = str(phone)
	lifecell = re.match(r'^380[6,7,9]3[0-9]{7}$', phone)
	kyivstar = re.match(r'^38067[0-9]{7}$|^3809[6-8][0-9]{7}$', phone)
	vodafone = re.match(r'^38050[0-9]{7}$|^38066[0-9]{7}$|^3809[5,9][0-9]{7}$', phone)
	intertelecom = re.match(r'^38094[0-9]{7}$|^3809[6-8][0-9]{7}$', phone)
	trimob = re.match(r'^38091[0-9]{7}$|^3809[6-8][0-9]{7}$', phone)
	peoplenet = re.match(r'^38092[0-9]{7}$|^3809[6-8][0-9]{7}$', phone)
	if lifecell:
		operator = 'lifecell'
	elif kyivstar:
		operator = 'kyivstar'
	elif vodafone:
		operator = 'vodafone'  
	elif intertelecom:
		operator = 'intertelecom'
	elif trimob:
		operator = 'trimob'
	elif peoplenet:
		operator = 'peoplenet'    
	else:
		operator = 'no_mobile'
	return operator

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *