2010-02-24 100 views
4

我試圖迭代正則表達式中的每個命名組(即 - (?<name>.*)),並根據組的名稱設置實例屬性或將其添加到集合中。重要的部分是我使用正則表達式時永遠不會知道組的名稱,所以我無法在Match上使用字符串索引器。有沒有辦法在我的Match中爲我的組提取名稱?迭代正則表達式命名組

+0

可能效率不高,但你可以寫一個正則表達式來解析你的正則表達式,並提取命名捕獲組的形式,然後可以重複使用列表... – gehsekky 2010-02-24 23:12:34

+0

@marduk「( *?)」:本尼做使用命名組語法,但沒有顯示出來,因爲他沒有使用反引號來編碼格式化正則表達式。 – 2010-02-25 01:08:43

回答

4

您可以使用Regex.GroupNameFromNumber遍歷正則表達式中的所有捕獲組並找到它們的名稱。

+1

http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.groupnamefromnumber.aspx – 2010-02-24 23:24:00

+0

完美!謝謝! – Benny 2010-02-25 19:04:51