Hello all,
I am struggling while trying to write a regex to capture the second and third occurrence of a pattern.
Here is my example:
The Following XML file for instance:
<Name>eth0</Name>
<IP>192.168.1.1/24</IP>
<MACAddress>xx:xx:xx:xx:xx:x</MACAddress>
<Status>ok</Status>
<Name>eth1</Name>
<IP>192.168.1.2/24</IP>
<MACAddress>xx:xx:xx:xx:xx:x</MACAddress>
<Status>ok</Status>
I manage to catch the first eth0
by doing:
<(Name)>(?<eth0name>\D+\d+)</(\1)>\n
But I can't manage to catch the eth1
field...
Sorry if this is a dumb question... I am new to Regex...
I am using https://regex101.com/ to help me out, but I'm stuck..
Can someone help me on this one please?
Thanks!
Will something like this work for you (run anywhere sample)
| gentimes start=-1 | eval _raw="<Name>eth0</Name> <IP>192.168.1.1/24</IP> <MACAddress>xx:xx:xx:xx:xx:x</MACAddress> <Status>ok</Status> <Name>eth1</Name> <IP>192.168.1.2/24</IP> <MACAddress>xx:xx:xx:xx:xx:x</MACAddress> <Status>ok</Status> <Name>eth3</Name> <IP>192.168.1.2/24</IP> <MACAddress>xx:xx:xx:xx:xx:x</MACAddress> <Status>ok</Status>" | table _raw
| rex max_match=0 "(\<Name\>(?<Ethernet>[^\<]+)\<\/Name\>)" | eval instance1=mvindex(Ethernet,0) | eval instance2=mvindex(Ethernet,1) | eval instance3=mvindex(Ethernet,2)
Will something like this work for you (run anywhere sample)
| gentimes start=-1 | eval _raw="<Name>eth0</Name> <IP>192.168.1.1/24</IP> <MACAddress>xx:xx:xx:xx:xx:x</MACAddress> <Status>ok</Status> <Name>eth1</Name> <IP>192.168.1.2/24</IP> <MACAddress>xx:xx:xx:xx:xx:x</MACAddress> <Status>ok</Status> <Name>eth3</Name> <IP>192.168.1.2/24</IP> <MACAddress>xx:xx:xx:xx:xx:x</MACAddress> <Status>ok</Status>" | table _raw
| rex max_match=0 "(\<Name\>(?<Ethernet>[^\<]+)\<\/Name\>)" | eval instance1=mvindex(Ethernet,0) | eval instance2=mvindex(Ethernet,1) | eval instance3=mvindex(Ethernet,2)
Hello,
Thank you for your help, this is indeed a way to achieve what I wanted to do.
I clearly didn't think of that.. thanks!
Have a nice day.
Ps: If anyone also think of a 100% pure regex way to do that I also am interested for learning purposes.