我有15个字符长的字符串.我正在使用正则表达式对其执行一些模式匹配.我想知道IsMatch()函数返回true 的子字符串的位置.
问题:是否有任何函数返回匹配的索引?
Adr*_*der 46
对于多个匹配,您可以使用与此类似的代码:
Regex rx = new Regex("as");
foreach (Match match in rx.Matches("as as as as"))
{
int i = match.Index;
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 15
使用Match而不是IsMatch:
Match match = Regex.Match("abcde", "c");
if (match.Success)
{
int index = match.Index;
Console.WriteLine("Index of match: " + index);
}
Run Code Online (Sandbox Code Playgroud)
输出:
Index of match: 2
Run Code Online (Sandbox Code Playgroud)
Regex.Match("abcd", "c").Index
2
Run Code Online (Sandbox Code Playgroud)
注意# 应该检查 Match.success 的结果,因为它返回 0,并且可能与位置 0 混淆,请参考 Mark Byers Answer。谢谢。