【发布时间】:2013-09-21 11:07:01
【问题描述】:
我正在使用这段代码来计算一个正则表达式模式包含多少组。
Dim GroupCount As Integer = Regex.Match(input, pattern).Groups.Count
当模式匹配输入时返回成功:
Dim GroupCount As Integer = Regex.Match(" something ", "( )something( )").Groups.Count
但如果模式不匹配,它总是返回 1。
Dim GroupCount As Integer = Regex.Match("ABC", "( )something( )").Groups.Count
无论如何,我需要一个计算模式中组数的函数。
【问题讨论】:
-
这是什么意思?
open bracket "(...)" -
@monocular 我很想知道你用来匹配的“模式”。
-
@HamletHakobyan 我的意思是我想计算一个正则表达式模式包含多少组。例如,此模式有 3 个组: (([a-z])([1-9]))
-
\(有意义吗?你必须得到匹配的数量。 -
@HamletHakobyan 您的意思是将正则表达式
\(应用于 OP 的模式吗?这不考虑字符类中转义的(、(或模式中的各种非捕获组。