子匹配重复模式

时间:2013-07-09 23:00:43

标签: ruby regex

我正在尝试在VBA中整理一个正则表达式,但即使在ruby中我也无法做到正确。

字符串:

<thead class="thead"><tr><th>FECHA</th><th>ITLUPVALOR</th><th>ITLUPPLAZO</th><th>ITLUP30DIAS</th><th>ITLUP60DIAS</th><th>ITLUP90DIAS</th><th>ITLUP180DIAS</th><th>ITLUP270DIAS</th><th>ITLUP360DIAS</th><th>ITLUP720DIAS</th><th>ITLUP1080DIAS</th><th>ITLUP1440DIAS</th><th>ITLUP1800DIAS</th></tr></thead>

我的尝试:

/(?:<thead class=\"thead\"><tr>)(<th>[^<]+?<\/th>)+(?:<\/tr><\/thead>)/m

这里的想法(http://rubular.com/r/BpbPszctTw)是有9个子匹配而不是1个。

我错过了什么?

2 个答案:

答案 0 :(得分:1)

抱歉,正则表达式重复组只捕获组中的最后一个匹配项。有关详细信息,请参阅http://www.regular-expressions.info/captureall.html

更新:是的,但是如果你让正则表达式匹配为你做重复,就像在另一个答案中一样,你可以按http://rubular.com/r/BclU13qWYm获得多个匹配!换句话说,接受另一个答案,而不是这个答案。 : - )

答案 1 :(得分:0)

使用此模式,您可以获得所需内容:

/<thead class="thead"><tr>|\G<th>([^<]+)<\/th>/

只需删除第一个结果。