正则表达式,捕获多个标签

时间:2014-09-10 08:57:26

标签: ruby regex

所以我举了这个例子:

<message>
test
test 
test
</message>
<message>
test2
test2
test2
</message>

现在我想要抓住<message> and </message>

之间的两件事

我有这个正则表达式:/<message>\n(.*)<\/message>\n/mi 我得到的结果是:

匹配1:

test
test 
test
</message>
<message>
test2
test2
test2

我希望这是结果:

匹配1:

test
test
test

比赛2:

test2
test2
test2

有没有办法解决我的问题?谢谢你的每一个答案。

2 个答案:

答案 0 :(得分:1)

您需要添加量词?才能进行不情愿的匹配(又称最短匹配)。

<message>\n(.*?)<\/message>

DEMO

答案 1 :(得分:1)

<[^>]*>(.*?)<\/[^>]*>

你可以使用g和s标志。见演示。

http://regex101.com/r/nG1gU7/33