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

时间:2012-10-22 04:02:15

标签: c# regex match

如何在regex.matches中为每个迭代使用迭代索引?

3 个答案:

答案 0 :(得分:0)

集合中的每个Match对象都具有Index属性。见http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.match.aspx

答案 1 :(得分:0)

尝试如下

 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();
            }
        }

答案 2 :(得分:0)

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

MatchCollection仅实现ICollection接口并且不实现IList,所以我认为不可能直接从matchcollection中检索索引。

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

http://msdn.microsoft.com/en-us/library/gg695671.aspx

数组确实有IndexOf,您可以使用它来检索索引。