C# 获取regex.matches中匹配项的索引(匹配号)

C# 获取regex.matches中匹配项的索引(匹配号),c#,regex,match,C#,Regex,Match,如何获取在正则表达式中使用for each迭代的匹配项的索引。匹配项???集合中的每个match对象都有index属性。请参见以下内容 string strInput = "YourString"; Regex regex = new Regex("Your Regex to match"); var m = regex.Match(strInput); if (m.Success) { foreach (var matches in regex.Mat

如何获取在正则表达式中使用for each迭代的匹配项的索引。匹配项???

集合中的每个
match
对象都有
index
属性。请参见以下内容

 string strInput = "YourString";

 Regex regex = new Regex("Your Regex to match");
 var m = regex.Match(strInput);
 if (m.Success)
      {
          foreach (var matches in regex.Matches(strInput))
           {
              if (m.Success)
                 {
                     Console.WriteLine(m.Index);
                 }

                 m = m.NextMatch();
            }
        }

Index将返回匹配项的第一个字符在原始字符串上的位置

MatchCollection只实现了
ICollection
接口,没有实现
IList
,因此我认为不可能直接从MatchCollection中检索项目的索引

但是您可以使用
Collection.CopyTo
将其移动到数组中


数组确实有一个可用于检索回索引的值。

match.index返回一个Int,该Int与给定文本中匹配字符串的索引相对应。。我已经通过声明一个变量并让它在循环中迭代解决了这个问题。无论如何,谢谢:)我想要匹配的索引,或者我们可以从匹配的集合中调用它作为匹配号。。