1: vlan1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 1c:c1:de:e7:e5:91 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.1/24 scope global vlan1
2: vlan2@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 1c:c1:de:e7:e5:91 brd ff:ff:ff:ff:ff:ff
inet 10.0.1.1/24 scope global vlan2
valid_lft forever preferred_lft forever
3: ifb0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc htb state UNKNOWN qlen 32
link/ether 9a:3b:4b:91:71:e8 brd ff:ff:ff:ff:ff:ff
...
и получить отдельные фрагменты:
1: vlan1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 1c:c1:de:e7:e5:91 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.1/24 scope global vlan1
и т.д.
Использую preg_matсh_all
Написал такой шаблон:
preg_match_all("/\W(\d+):\s(.+)\W(\d+):\s/isU", $address, $out);
Работает, но выводит через раз. Например в этом примере 2: vlan2 не выведется.
Я так понимаю это связано с тем, что в шаблоне указано искать от цифра: до цифра: и при следующем поиске пропускается один фрагмент.
Как исправить?