2015-07-20 5 views
0

я следующая строка:Regex для извлечения конкретной строки и присвоить его переменной

Jul 20 16:47:43 chefawsdeveastbck2 dhclient[1036]: bound to 10.205.5.122 -- renewal in 1797 seconds. 
Jul 17 18:07:15 chefawsdeveastbck2 Keepalived_vrrp[937]: VRRP_Instance(PC_VI) Sending gratuitous ARPs on eth0 for 10.205.5.121 
Jul 17 18:07:10 chefawsdeveastbck2 Keepalived_vrrp[937]: VRRP_Instance(PC_VI) Sending gratuitous ARPs on eth0 for 10.205.5.121 
Jul 17 18:07:10 chefawsdeveastbck2 Keepalived_vrrp[937]: VRRP_Instance(PC_VI) setting protocol VIPs. 
Jul 17 18:07:10 chefawsdeveastbck2 Keepalived_vrrp[937]: VRRP_Instance(PC_VI) Entering MASTER STATE 
Jul 17 18:07:09 chefawsdeveastbck2 Keepalived_vrrp[937]: VRRP_Instance(PC_VI) Transition to MASTER STATE 
Jul 17 18:07:09 chefawsdeveastbck2 Keepalived_vrrp[937]: VRRP_Instance(PC_VI) Transition to Backup STATE 

мне нужно только извлечь «MASTER ГОСТу», «резервный ГОСТу», «Backup ГОСТу» из приведенных выше строк , который всегда появляется после «VRRP_Instance (PC_VI)« Ввод »или« VRRP_Instance (PC_VI) Переход на ». Прямо сейчас, я написал следующее:

.*(VRRP_Instance.*.[EnteringTransitionto]+)(?P<instance_state>.+) 

Это, очевидно, не так и подбирая другие строки, а также. Пожалуйста помоги.

+0

Просто для уточнения, блок текста - это каждой строки отдельную строку, или весь блок один строка? – onebree

+0

Да, каждая строка представляет собой разделенную строку. –

+0

Какой язык/инструмент вы используете и каков ваш ожидаемый результат? – anubhava

ответ

1

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

Например:

.*VRRP_Instance.*.(Entering|Transition to) (?P<instance_state>.+ 
1

Если Master и резервного копирования состояния являются только государства, у вас есть, то вы можете использовать регулярные выражения, как этот ((?:\bMASTER\b|\bBACKUP\b) STATE)$ с Multiline (м), Игнорировать регистр (I) и глобальные (G) модификаторы.

1
/VRRP_Instance\(PC_VI\) (?:Entering|Transition to) ((?:MASTER|[bB]ackup) STATE)/ 

regexper diagram

Смежные вопросы