2013-10-14 63 views
3

有一種方法可以反轉RegEx.MatchCollection的項目嗎?反向RegEx MatchCollection項目?

例如,如果一個MatchCollection包含那些比賽:

a1 
a2 
a3 

然後我想扭轉收集項目,使項目索引會在別的這樣的:

a3 
a2 
a1 

...保留他們的比賽索引和其他匹配信息作爲長度,組等。

+1

它需要是另一個'MatchCollection'或者你可以抓住'Matches'和扭轉他們,e.g ,. 'var reversed = matches.Cast ().Reverse();' –

+0

@ sa_ddam213感謝評論,對於反向Ienumerable還不夠我還是輸了,我覺得無所謂集合的類型,而我仍然可以檢索項目我需要的信息,但我不確定,你是專家,再次感謝。 – ElektroStudios

回答

3

不完全是MatchCollection,而是IEnumerable<Match>

myMatchCollection.Cast<Match>().Reverse() 

不錯,可能。

+0

謝謝,但我對IEnumerables並沒有多少經驗,我需要將反向者轉換爲其他類型?我如何做到這一點,然後檢索匹配信息?,試圖使用IEnumerable使用LINQ MatchFollection,但'Match'和'Matchcollection'沒有'New'構造函數,所以像這樣的東西不能工作:匹配= matches.Cast(Of Match)()。Reverse()。Select(Function(m)New Match(m)) – ElektroStudios

+0

哎喲,謝謝你的時間,我已經做了一個數組,並且所有的作品都很好:Dim var = matches.Cast(Of Match)()。Reverse()。ToArray MsgBox(var.First.Groups(0).Value) – ElektroStudios

0

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