C# 获取regex.matches中匹配项的索引(匹配号)
如何获取在正则表达式中使用for each迭代的匹配项的索引。匹配项???集合中的每个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
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与给定文本中匹配字符串的索引相对应。。我已经通过声明一个变量并让它在循环中迭代解决了这个问题。无论如何,谢谢:)我想要匹配的索引,或者我们可以从匹配的集合中调用它作为匹配号。。