如何将Regex.Matches放入数组中?我有多个正则表达式匹配项。如何将它们放入数组中并单独调用它们,例如ID[0]ID[1]?字符串值=("{"ID":"([A-Za-z0-9_.,]+)",");stringID=Regex.Matches(textt,@value);`你可以这样做是因为MatchCollection有一个int索引器,它允许你通过索引访问匹配项。这非常有效:MatchCollectionmatches=Regex.Matches(textt,@value);匹配firstMatch=matches[0];但是如果你真的想把匹配项放到一个数组中,你可以这样做:Match[]matches=Regex.Matches(textt,@value).Cast().ToArray();另一种方法stringvalue=("{"ID":"([A-Za-z0-9_.,]+)",");MatchCollectionmatch=Regex.Matches(textt,@value);string[]ID=newstring[match.Count];for(inti=0;i或最后两个的组合可能更容易接受...MatchCollection可以像数组一样直接使用它——不需要辅助数组:stringvalue=("{"ID":"([A-Za-z0-9_.,]+)",");MatchCollectionmatches=Regex.Matches(textt,@value);for(inti=0;i除了返回非强类型MatchCollection的问题,.NET中的Regex.Matches()方法还有一个问题,就是虽然有一个重载允许你在输入字符串中指定起始索引,但是不能限制字符数。下面扩展方法解决了这两个问题。它也比Matches()和MatchCollection的.NET配对简单得多,因为它消除了受MatchCollection影响的延迟评估行为,而是MatchCollection返回完整的匹配集。以上就是C#学习教程:Regex.Matches如何放入数组?分享的所有内容,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注---publicstaticMatch[]Matches(thisRegexrx,Strings,intix,intc){如果((ix|c)s.Length)抛出新的ArgumentException();诠释我=0;varrg=Array.Empty();匹配米;while(c>0&&(m=rx.Match(s,ix,c).Success){if(i==rg.Length)Array.Resize(refrg,(i|1)本文收集自互联网,不代表立场,如涉及侵权,请点击右边联系管理员删除,如需转载请注明出处:
