之前發的例子後來成功解決了
程式碼如下
但後來遇到下面的狀況
我想舉一反三
把後面的
(\d+\/\d+|lag\/\d+||\d+\/\d+\/\d+)-?(vlan\/|qinq\/)(\d+.\d+|\d+)
包成
(?:(\d+\/\d+|lag\/\d+||\d+\/\d+\/\d+)-?(vlan\/|qinq\/)(\d+.\d+|\d+))?
但結果不是我想像的一樣耶
(GESW-ZYXEL-VES-1724(PCPC-776))-776 0/23 1/1-VLAN/246
(GESW-ZYXEL-MGS-3712F-C(PCPC-626))-626 1/6-VLAN/246 1/10-VLAN/246
(GESW-ALCATEL-7450(PCPC-15))-15 1/2/3-VLAN/246 1/2/10-VLAN/317
(HPER-REDBACK SE-800(PCPC-206))-206 9/7-VLAN/317
程式碼如下
preg_match_all('/\(([A-Z0-9]+-\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]);
但後來遇到下面的狀況
我想舉一反三
把後面的
(\d+\/\d+|lag\/\d+||\d+\/\d+\/\d+)-?(vlan\/|qinq\/)(\d+.\d+|\d+)
包成
(?:(\d+\/\d+|lag\/\d+||\d+\/\d+\/\d+)-?(vlan\/|qinq\/)(\d+.\d+|\d+))?
但結果不是我想像的一樣耶
(GESW-ZYXEL-VES-1724(PCPC-776))-776 0/23 1/1-VLAN/246
(GESW-ZYXEL-MGS-3712F-C(PCPC-626))-626 1/6-VLAN/246 1/10-VLAN/246
(GESW-ALCATEL-7450(PCPC-15))-15 1/2/3-VLAN/246 1/2/10-VLAN/317
(HPER-REDBACK SE-800(PCPC-206))-206 9/7-VLAN/317