Regex.Match有.Success和.NextMatch为什么它没有GetEnumerator函数?
凭借我的逻辑,它似乎很容易实现。但它不在3.5,所以任何人都可以告诉我为什么不呢?
foreach (var m in Regex.Match("dummy text", "mm")) error CS1579: foreach statement cannot operate on variables of type 'System.Text.RegularExpressions.Match' because 'System.Text.RegularExpressions.Match' does not contain a public definition for 'GetEnumerator'
答案 0 :(得分:10)
也许你想要Regex.Matches
?
答案 1 :(得分:3)
Regex.Match
返回字符串中匹配的模式的第一个实例。
你可能想要
Regex.Matches
,返回字符串中所有匹配项的MatchCollection。
答案 2 :(得分:2)
因为Match
对象是不可变的(并且NextMatch()
不会更改当前匹配的上下文,但会为您提供对下一个的引用,这与IEnumerable.MoveNext()
不同)
但你可以这样做:
for (Match m=Regex.Match("dummy text", "mm"); m.Success; m=m.NextMatch()) {
// loop code
}