Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 12, 2010 15:04:52

Phoen
От:
Зарегистрирован: 2010-04-21
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь с регулярным выражением

Имеется скрипт подключающийся telnetlib'ом к железкам, и в выводе он получает от них примерно следующее:


sh users | include demologin
Vi201 demologin PPPoE 01:28:32 172.14.0.1
Необходимо выцепить отсюда Vi201 (номер интерфейса тоже нужен и он может быть любой). Как это лучше сделать? С регулярными выражениями я, к сожалению, совсем не ознакомлен.



Офлайн

#2 Дек. 12, 2010 17:59:28

ta
Зарегистрирован: 2009-12-15
Сообщения: 90
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь с регулярным выражением

вот это

sh users | include demologin
тоже в выводе?

Офлайн

#3 Дек. 12, 2010 18:30:41

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Нужна помощь с регулярным выражением

print "Vi201        demologin            PPPoE        01:28:32 172.14.0.1".split()[0:3:2]



Отредактировано (Дек. 12, 2010 18:35:40)

Офлайн

#4 Дек. 13, 2010 03:39:32

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9963
Репутация: +  856  -
Профиль   Отправить e-mail  

Нужна помощь с регулярным выражением

ещё подробнее

>>> s = '  Vi201        demologin            PPPoE        01:28:32 172.14.0.1 '
>>> parts = s.split()
>>> parts
['Vi201', 'demologin', 'PPPoE', '01:28:32', '172.14.0.1']
>>> print(parts[0], parts[-1])
Vi201 172.14.0.1
>>>
>>> import re
>>> re.findall('[^ ]+', s)
['Vi201', 'demologin', 'PPPoE', '01:28:32', '172.14.0.1']
>>>
можно ещё подготовить строку
>>> re.sub('[\t\n]+', ' ', s)
' Vi201 demologin PPPoE 01:28:32 172.14.0.1 '
>>>



Отредактировано (Дек. 13, 2010 03:45:54)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version