懒惰(ungreedy)使用正则表达式匹配多个组
我想获取标签对之间的任何值的内容。
This is one block of text This is another one
我想出的正则表达式是
/(.*)/m
虽然,它似乎是贪婪的,并且在最后一个捕获括号内的所有内容。 我希望它尽可能地懒惰,以便每当它看到一个结束标记时,它会将其视为匹配组并重新开始。
如何编写正则表达式,以便我能够在给定方案中获得多个匹配?
我在下面的链接中包含了我所描述的示例
http://rubular.com/r/JW5M3rnqIE
注意:这不是XML,也不是基于任何现有的标准格式。 我不需要任何复杂的东西,比如一个带有一个很好的解析器的完整库。
使用正则表达式模式:
/(.*?)<\/tag>/im
懒惰(非贪婪)是.*?
不是.*
。
要查找多个匹配项,请使用:
string.scan(/(.*?)<\/tag>/im)