是否有返回RegEx匹配开始索引的函数?我有一个15个字符长的字符串。我正在使用正则表达式对其进行一些模式匹配。我想知道IsMatch()函数返回true的子字符串的位置。问题:有返回匹配索引的函数吗?对于多个匹配,您可以使用类似这样的代码:Regexrx=newRegex("as");foreach(在rx.Matches("asasas")中匹配匹配){inti=match.Index;}不使用IsMatch,而是使用Matches方法。这将返回一个MatchCollection,其中包含许多Match对象。这些具有属性索引。使用Match而不是IsMatch:Matchmatch=Regex.Match("abcde","c");如果(match.Success){intindex=match.Index;Console.WriteLine("匹配索引:"+index);}Output:Indexofmatch:2Regex.Match("abcd","c").Index2注意#Match.success的结果应该被检查,因为它返回0并且可能与位置0混淆,参考MarkByers回答。谢谢。不使用IsMatch(),而是使用Matches:conststringstringToTest="abcedfghijklghmnopqghrstuvwxyz";conststringpatternToMatch="gh*";正则表达式regex=newRegex(patternToMatch,RegexOptions.Compiled);MatchCollectionmatches=regex.Matches(stringToTest)foreach(Matchmatchinmatches){Console.WriteLine(match.Index);}Console.Writeline("随机字符串".IndexOf("om"));这将输出4a-1formismatch以上是C#学习教程:有返回RegEx匹配开始处索引的函数吗?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
