将其更改为使用惰性量词
.*?
但是,这些交替部分(*?
| \* | - )
永远不会被触动。
readable
^
( \s* ) # (1)
( \w+ / \d+ | \w+ / \d+ / \d+ ) # (2)
( \s+ ) # (3)
( .*? ) # (4)
( # (5 start)
notconnected
|
disabled
|
connected
) # (5 end)
( \s+ ) # (6)
( \d+ | trunk ) # (7)
( \s+ ) # (8)
( \w+ | a- \w+ ) # (9)
( \s+ ) # (10)
( \w+ | a- \d+ ) # (11)
( \s+ ) # (12)
( \w+ | /+ ) # (13)
.*
输出
** Grp 0 - ( pos 0 : len 87 )
Fa0/1 --- Cisco IP phone - notconnected 20 a-full auto 10/100BaseTX
** Grp 1 - ( pos 0 : len 1 )
** Grp 2 - ( pos 1 : len 5 )
Fa0/1
** Grp 3 - ( pos 6 : len 5 )
** Grp 4 - ( pos 11 : len 22 )
--- Cisco IP phone -
** Grp 5 - ( pos 33 : len 12 )
notconnected
** Grp 6 - ( pos 45 : len 3 )
** Grp 7 - ( pos 48 : len 2 )
20
** Grp 8 - ( pos 50 : len 7 )
** Grp 9 - ( pos 57 : len 6 )
a-full
** Grp 10 - ( pos 63 : len 4 )
** Grp 11 - ( pos 67 : len 4 )
auto
** Grp 12 - ( pos 71 : len 4 )
** Grp 13 - ( pos 75 : len 2 )
10