C# 反向正则表达式匹配集合项?
是否有一种方法可以反转RegEx.MatchCollection的项 例如,如果MatchCollection包含这些匹配项:C# 反向正则表达式匹配集合项?,c#,.net,regex,vb.net,reverse,C#,.net,Regex,Vb.net,Reverse,是否有一种方法可以反转RegEx.MatchCollection的项 例如,如果MatchCollection包含这些匹配项: a1 a2 a3 然后我想反转集合项,以便项索引为以下内容: a3 a2 a1 …保留其匹配索引和其他匹配信息,如长度、组等。不完全是匹配集合,而是IEnumerable myMatchCollection.Cast().Reverse() 可能已经足够好了。VB.NET版本: Imports System.Text.RegularExpressions Di
a1
a2
a3
然后我想反转集合项,以便项索引为以下内容:
a3
a2
a1
…保留其匹配索引和其他匹配信息,如长度、组等。不完全是
匹配集合,而是IEnumerable
myMatchCollection.Cast().Reverse()
可能已经足够好了。VB.NET版本:
Imports System.Text.RegularExpressions
Dim matches() As Match = Regex.Matches("ABCDA", "A").Cast(Of Match).Reverse().ToArray()
MsgBox(matches.First.Index) ' Result: 4
它是否需要另一个MatchCollection
,或者您可以抓取匹配项
并将其反转,例如var reversed=matches.Cast().Reverse()
@sa_ddam213谢谢你的评论,我仍然丢失了一个反向Ienumerable,这还不够,我认为收集的类型无关紧要,虽然我仍然可以检索到我需要的物品信息,但我不确定,你是专家,再次感谢。谢谢你,但我对Ienumerable没有太多经验,我需要将反转器转换为其他类型?然后我如何检索匹配信息?尝试使用LINQ和IEnumerable创建一个MatchCollection,但是'Match'和'MatchCollection'没有'New'构造函数,因此类似的东西无法工作:matches=matches.Cast(Of Match)(.Reverse().Select(Function(m)New Match(m))哎哟,谢谢你的时间,我把它作为一个数组来做,所有的工作都很好:Dim var=matches.Cast(Of Match)(.Reverse().ToArray MsgBox(var.First.Groups(0.Value))
Imports System.Text.RegularExpressions
Dim matches() As Match = Regex.Matches("ABCDA", "A").Cast(Of Match).Reverse().ToArray()
MsgBox(matches.First.Index) ' Result: 4