2012-10-18 43 views
5

我正在匹配包含可選組和非可選組的混合重複組。當我迭代捕獲時,捕獲集合總是摺疊,即它們不爲非匹配項插入空元素。c#正則表達式捕獲

有沒有辦法保留捕獲集合中的匹配順序,這樣任何被忽略的可選項目都被插入爲空,從而確保捕獲集合元素跨組對應?爲了澄清,假設我的重複(父母)組匹配三次,並且在三個匹配中的一箇中,一個可選的子組被省略但出現在其他兩組中,我最終得到一個捕獲集合被省略的項目比其他捕捉集合小一個元素。我如何知道哪些父組忽略了可選項目?

我想可以使用捕獲集合項目的Index屬性並檢查它是否落在父組的邊界內,但如果非匹配返回捕獲集合中的空項目會更容易。有沒有辦法做到這一點?

+0

你能提供一些示例代碼來演示? – PinnyM

回答

10

代替(pattern)?使用(pattern|),你應該得到你想要的...

+0

太棒了,完成了!非常感謝! – pdm2011