Regex to extract a particular string and assign it to a variable -


i have following string :

jul 20 16:47:43 chefawsdeveastbck2 dhclient[1036]: bound 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 10.205.5.121 jul 17 18:07:10 chefawsdeveastbck2 keepalived_vrrp[937]: vrrp_instance(pc_vi) sending gratuitous arps on eth0 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 master state jul 17 18:07:09 chefawsdeveastbck2 keepalived_vrrp[937]: vrrp_instance(pc_vi) transition backup state 

i need extract "master state" , "backup state", "backup state" above strings , appear after "vrrp_instance(pc_vi) entering" or "vrrp_instance(pc_vi) transition to". right , have wrote following:

.*(vrrp_instance.*.[enteringtransitionto]+ )(?p<instance_state>.+) 

it not right , picking other strings well. please help.

you need use alternation find 2 possible key strings instead of trying match of individual letters in them.

for example:

.*vrrp_instance.*.(entering|transition to) (?p<instance_state>.+ 

Comments