C# Regexp:为单个带星号的组查找多个匹配项

C# Regexp:为单个带星号的组查找多个匹配项,c#,javascript,regex,C#,Javascript,Regex,假设我们有/(a*b)*/regexp,我们想要 {"aab", "ab", "aaab"} 作为与“aababaab”字符串匹配时唯一一对括号(组)的匹配集。当然,我们可以使用gmodifier,并在循环中运行它,但是还有很多更复杂的例子,当这种重写由于代码膨胀而不合适时。NET有这样一个称为的接口 在JS中,使用标准库或外部库是否有相同的方法?我不知道我是否理解正确,但如果您想获得查询的最小表达式,可以使用ungreedy匹配: 'aababaaab'.match(/(a*b)+?/g);

假设我们有
/(a*b)*/
regexp,我们想要

{"aab", "ab", "aaab"}
作为与
“aababaab”
字符串匹配时唯一一对括号(组)的匹配集。当然,我们可以使用
g
modifier,并在循环中运行它,但是还有很多更复杂的例子,当这种重写由于代码膨胀而不合适时。NET有这样一个称为的接口


在JS中,使用标准库或外部库是否有相同的方法?

我不知道我是否理解正确,但如果您想获得查询的最小表达式,可以使用ungreedy匹配:

'aababaaab'.match(/(a*b)+?/g);

问题是你不会得到所有的组合,但你似乎并不关心你的问题。

你能给你的问题添加一个“更复杂”的例子吗?@Alex
/((a*b)*)*/
->
/(a*b)*/g
+循环中的匹配/移位->
/a*b/g
+2 x两个循环中的匹配/移位。现实世界的例子是通过Google脚本中的内容解析
clist.by
(由于缺少内置的XPath实现和有缺陷的HTML解析器,regexps是“ultima比率”)。我不会把这些添加到问题中,因为这只会使问题复杂化,而且几乎每个人自己都有这样的问题。你应该提供更好的解释。据我所知,以下代码应该符合您的要求(为什么循环?):
'aababaab'.match(/a*b/g)
。问题是关于带有捕获组的regex for JS的实现,而不是您认为是个问题的确切示例。请再次阅读该问题。我知道可以使用
g
修饰符来实现这一点。