以下代码返回1:
Regex.Match("aaa", "(a)").Groups[1].Captures.Count
Run Code Online (Sandbox Code Playgroud)
但是我希望收到3:我看到三次拍摄.
R. *_*des 12
您需要获得匹配计数:
Regex.Matches("aaa", "(a)").Count
Run Code Online (Sandbox Code Playgroud)
或者为正则表达式添加量词:
Regex.Match("aaa", "(a)+").Groups[1].Captures.Count
Run Code Online (Sandbox Code Playgroud)
正则表达式(a)只匹配一个a.在上面的第一个例子中,该正则表达式可以匹配三次.
在第二个示例中,正则表达式同时匹配多个as并将每个正则表达式捕获到组1中.
要做出选择,您应该考虑它们之间的以下区别:
Regex.Matches("aaba", "(a)").Count // this is 3
Regex.Match("aaba", "(a)+").Groups[1].Captures.Count // this is 2
Run Code Online (Sandbox Code Playgroud)
第二个只产生两个捕获,因为它匹配两个as 的第一个序列,但是当它找到一个时它停止匹配b.该+量词只匹配完整的序列.
| 归档时间: |
|
| 查看次数: |
14571 次 |
| 最近记录: |