是否有正则表达式风格可以让我计算 * 和 + 运算符匹配的重复次数?
-
26-09-2019 - |
题
是否有正则表达式风格可以让我计算与 *
和 +
运营商?我特别想知道在 .NET 平台下是否可以。
解决方案
你很幸运,因为事实上 .NET 正则表达式可以做到这一点(我认为这是非常独特的)。本质上在每个 Match
, , 每个 Group
存储每个 Captures
那是做的。
因此,您可以通过以下方式计算可重复模式与输入匹配的次数:
- 使其成为捕获组
- 计算该组在每场比赛中的捕获次数
- 如果您愿意,您也可以迭代单独的捕获!
这是一个例子:
Regex r = new Regex(@"\b(hu?a)+\b");
var text = "hahahaha that's funny but not huahuahua more like huahahahuaha";
foreach (Match m in r.Matches(text)) {
Console.WriteLine(m + " " + m.Groups[1].Captures.Count);
}
这打印(如 ideone.com 上所示):
hahahaha 4
huahuahua 3
huahahahuaha 5
API参考
其他提示
如何关于采取"pref ([a-z]+) suff"
然后使用组来捕获该[A-Z] +在支架和发现其长度?
可以使用该长度用于后续匹配也是如此。
不隶属于 StackOverflow