正则表达式重复组C#/ C ++

时间:2014-10-28 21:00:46

标签: .net regex

我有以下正则表达式,

^([d-])([rwxt-]{3}){3}

有两组,第二组重复3次。当我从Match对象中使用Groups [1]时,我得到了第一个组,但我只得到了第二组与Group [2]的最后一个匹配。如何在.NET中访问第二组的所有重复匹配?

谢谢,

布鲁斯

2 个答案:

答案 0 :(得分:1)

您可以使用\G选项并仅捕获前4个匹配项

^([d-])|\G([rwxt-]{3})  

Demo

答案 1 :(得分:1)

你不能,.net正则表达式引擎不存储三个重复的组,它只存储覆盖前一个的最后一个组,依此类推。

您可以将@alphabravo模式与全球研究结合使用:

(?:\G(?!\A)|^([\d-]))([rwxt-]{3})

或简单地写:

^([d-])([rwxt-]{3})([rwxt-]{3})([rwxt-]{3})