Регулярное выражение для разделения имени хоста (FQDN) для получения первой части в строке python - PullRequest
0 голосов
/ 27 января 2020
device_name = "english-in-en-2g.pr.xyz.com"

if '.' in device_name:
     print('yes')
else:
     print('no')


Out[24]: yes

device_name.split(r'\.[a-zA-Z]',1)[0]

Out[25]: 'english-in-en-2g.pr.xyz.com'

Требуется следующий вывод:

"english-in-en-2g"

, разделенный . (точка)

У меня также есть IP-адрес, чтобы игнорировать это, поэтому я попытался использовать следующее регулярное выражение device_name.split(r'\.[a-zA-Z]',1)[0]

1 Ответ

1 голос
/ 28 января 2020

Один из способов - проверить, является ли device_name IP-адресом, и игнорировать разбиение, если оно есть. В противном случае разделите fqdn, чтобы получить первую часть.

IP-адрес можно проверить с помощью модуля ipaddress.

import ipaddress
def is_ip_address(addr):
    try:
        ipaddress.ip_address(addr)
        return True
    except:
        return False

Затем можно сравнить device_name по IP-адресу и разделить на '.', если это не так.

if not is_ip_address(device_name):
    first_part = device_name.split(".")[0]

Надеюсь, это поможет.

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