3 回答

TA貢獻1773條經(jīng)驗 獲得超3個贊
match.Groups[0]始終與相同match.Value,這是整個匹配項。
match.Groups[1] 是正則表達式中的第一個捕獲組。
考慮以下示例:
var pattern = @"\[(.*?)\](.*)";
var match = Regex.Match("ignored [john] John Johnson", pattern);
在這種情況下,
match.Value 是 "[john] John Johnson"
match.Groups[0]始終是一樣的match.Value,"[john] John Johnson"。
match.Groups[1]是來自的捕獲物組(.*?)。
match.Groups[2]是來自的捕獲物組(.*)。
match.Groups[1].Captures 是另一個維度。
考慮另一個示例:
var pattern = @"(\[.*?\])+";
var match = Regex.Match("[john][johnny]", pattern);
請注意,我們正在連續(xù)查找一個或多個帶括號的名稱。您需要能夠分別獲得每個名稱。輸入Captures!
match.Groups[0]始終是一樣的match.Value,"[john][johnny]"。
match.Groups[1]是來自的捕獲物組(\[.*?\])+。與match.Value這種情況相同。
match.Groups[1].Captures[0] 是相同的 match.Groups[1].Value
match.Groups[1].Captures[1] 是 [john]
match.Groups[1].Captures[2] 是 [johnny]

TA貢獻1865條經(jīng)驗 獲得超7個贊
Groups[0] 是您的整個輸入字符串。
Groups[1]是您的組被括號所捕獲(.*?)。您可以將正則表達式配置為僅捕獲顯式組(創(chuàng)建正則表達式時有一個選項),或用于(?:.*?)創(chuàng)建非捕獲組。
- 3 回答
- 0 關(guān)注
- 686 瀏覽
添加回答
舉報