(GESW-ZYXEL-VES-1724(PCPC-776))-776 0/23 1/1-VLAN/245
(GESW-ZYXEL-MGS-3712F-C(PCPC-626))-626 1/6-VLAN/245 1/10-VLAN/245
(GESW-ALCATEL-7450(PCPC-15))-15 1/2/3-VLAN/245 LAG/1-QINQ/123.245{Linkport:2/1/9;1/1/9;2/2/9}
(HPER-REDBACK SE-1200(PCPC-214))-214 LAG/PCPC_15_LAG1-QINQ/123.245{Linkport:10/1;12/4;12/9} 13/5-VLAN/1664
我有一個資料如上(有4行的資料)
我希望
每一行資料都能抓出5個資料,缺項補空值
這5個資料分別是
1.設備流水
2.左端 slot/port
3.左端 vlan 或是 qinq
4.右端 slot/port
5.右端 vlan 或是 qinq
有缺項補空值
我的程式如下
跑出來的結果如下
Array ( [0] => PCPC-626 [1] => PCPC-15 [2] => PCPC-214 )
--------------------------------------------------------------------------------
Array ( [0] => 1/6 [1] => 1/2/3 [2] => PCPC_15_LAG1 )
--------------------------------------------------------------------------------
Array ( [0] => 245 [1] => 245 [2] => 123.245 )
--------------------------------------------------------------------------------
Array ( [0] => 1/10 [1] => LAG/1 [2] => 13/5 )
--------------------------------------------------------------------------------
Array ( [0] => 245 [1] => 123.245 [2] => 1664 )
結果沒有上面
第1筆的資料
因為第1筆的資料有缺項
它少了
3.左端 vlan 或是 qinq
請問這樣子我的 regex 要怎麼改呢
謝謝
(GESW-ZYXEL-MGS-3712F-C(PCPC-626))-626 1/6-VLAN/245 1/10-VLAN/245
(GESW-ALCATEL-7450(PCPC-15))-15 1/2/3-VLAN/245 LAG/1-QINQ/123.245{Linkport:2/1/9;1/1/9;2/2/9}
(HPER-REDBACK SE-1200(PCPC-214))-214 LAG/PCPC_15_LAG1-QINQ/123.245{Linkport:10/1;12/4;12/9} 13/5-VLAN/1664
我有一個資料如上(有4行的資料)
我希望
每一行資料都能抓出5個資料,缺項補空值
這5個資料分別是
1.設備流水
2.左端 slot/port
3.左端 vlan 或是 qinq
4.右端 slot/port
5.右端 vlan 或是 qinq
有缺項補空值
我的程式如下
preg_match_all('/\(([A-Z]+-\d+)\)\)-\d+ L?A?G?\/?(\d+\/\d+\/?\d?|[A-Z]+_\d{2}_\w+|\d+\/\d+\/\d+)-?(vlan\/|qinq\/)(\d+.\d+|\d+)(\s+|\{.*\}\s+)(\d+\/\d+|lag\/\d+||\d+\/\d+\/\d+)-?(vlan\/|qinq\/)(\d+.\d+|\d+)/i',$f,$matches); print_r($matches[1]); echo "<hr>"; print_r($matches[2]); echo "<hr>"; print_r($matches[4]); echo "<hr>"; print_r($matches[6]); echo "<hr>"; print_r($matches[8]);
跑出來的結果如下
Array ( [0] => PCPC-626 [1] => PCPC-15 [2] => PCPC-214 )
--------------------------------------------------------------------------------
Array ( [0] => 1/6 [1] => 1/2/3 [2] => PCPC_15_LAG1 )
--------------------------------------------------------------------------------
Array ( [0] => 245 [1] => 245 [2] => 123.245 )
--------------------------------------------------------------------------------
Array ( [0] => 1/10 [1] => LAG/1 [2] => 13/5 )
--------------------------------------------------------------------------------
Array ( [0] => 245 [1] => 123.245 [2] => 1664 )
結果沒有上面
第1筆的資料
因為第1筆的資料有缺項
它少了
3.左端 vlan 或是 qinq
請問這樣子我的 regex 要怎麼改呢
謝謝