@Begginer_serg

Какое регулярное выражение надо использовать?

Есть выражение
"Имя: test1.computer.domain Address: 1.1.1.1", какое регулярное выражение нужно использовать чтобы выделить " test1.computer.domain?
Смог откинуть конец так:
pattern = '(\w*)Address: 1.1.1.1'
hostname = re.sub(pattern, '', string)
Вывод: Имя: test1.computer.domain

примерно такой текст
"

Сервер: test3.com
Address: 3.3.3.3

Сервер: test.test2.com
Address: 2.2.2.2

Имя: test2.test.ru
Address: 1.1.1.1
"
Таких может быть несколько, и мне нужно именно последний выделить (знаю только его айпи, в данном случае 1.1.1.1)
  • Вопрос задан
  • 89 просмотров
Пригласить эксперта
Ответы на вопрос 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
знаю только его айпи, в данном случае 1.1.1.1

Вариант без регулярки:
data = '''
Сервер: test3.com
Address: 3.3.3.3

Сервер: test.test2.com
Address: 2.2.2.2

Имя: test2.test.ru
Address: 1.1.1.1
'''
parsed = [x.split(':') for x in filter(lambda x:any([
    x.startswith('Сервер:'),
    x.startswith('Имя:'),
    x.startswith('Address:')
]), data.split('\n'))]
servers =  dict([(x[1][1].strip(), x[0][1].strip()) for x in zip(parsed[::2], parsed[1::2])])
servers['1.1.1.1']
# 'test2.test.ru'
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы