正则表达式匹配模式的最终出现

时间:2014-03-30 19:34:58

标签: ruby regex

我正在尝试匹配像这样的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。我认为我的正则表达式并不贪婪,但看起来我仍然缺少某些东西。

1 个答案:

答案 0 :(得分: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