2014-03-30 57 views
0

我想匹配的WWN的這樣一個模式的最終發生的最終發生:正則表達式匹配模式

addr: 10:00:00:00:c4:a2:42:15 
port: 10:00:00:00:c4:a2:42:15 
addr: 10:00:00:00:c4:a2:42:16 
port: 10:00:00:00:c4:a2:42:16 

當我測試了這一點:

port: (([0-9a-f]{2}[:-]){7}([0-9a-f]{2}))(?!.*port: ([0-9a-f]{2}[:-]){7}([0-9a-f]{2})) 

它只匹配10:00:00:00:c4:a2:42:15 。我認爲我的正則表達式是非貪婪的,但看起來我仍然錯過了一些東西。

回答

6

.與換行符不匹配。嘗試使用[\s\S]代替:

port: (([0-9a-f]{2}[:-]){7}([0-9a-f]{2}))(?![\s\S]*port: ([0-9a-f]{2}[:-]){7}([0-9a-f]{2})) 
              ^^^^^^ 

rubular demo

+0

就是這樣。謝謝! – user3455953

+0

@ user3455953不客氣:) – Jerry

+0

現場示例:http://regexr.com/38l2a – CenterOrbit