第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C#中的正則表達式組

C#中的正則表達式組

慕慕森 2019-10-11 14:27:55
我繼承了一個包含以下正則表達式的代碼塊,并且試圖了解它如何獲得結(jié)果。var pattern = @"\[(.*?)\]";var matches = Regex.Matches(user, pattern);if (matches.Count > 0 && matches[0].Groups.Count > 1)    ...對于輸入user == "Josh Smith [jsmith]":matches.Count == 1matches[0].Value == "[jsmith]"...我了解。但是之后:matches[0].Groups.Count == 2matches[0].Groups[0].Value == "[jsmith]"matches[0].Groups[1].Value == "jsmith" <=== how?看著這個問題從我了解的群體集合存儲在整場比賽以及之前的比賽。但是,上面的正則表達式不只適用于[方括號] [文本] [方括號],那么“ jsmith”為什么會匹配?另外,groups集合是否總是會精確地存儲2個組:整個匹配項和最后一個匹配項?
查看完整描述

3 回答

?
慕容3067478

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]


查看完整回答
反對 回復(fù) 2019-10-11
?
鴻蒙傳說

TA貢獻1865條經(jīng)驗 獲得超7個贊

Groups[0] 是您的整個輸入字符串。


Groups[1]是您的組被括號所捕獲(.*?)。您可以將正則表達式配置為僅捕獲顯式組(創(chuàng)建正則表達式時有一個選項),或用于(?:.*?)創(chuàng)建非捕獲組。


查看完整回答
反對 回復(fù) 2019-10-11
  • 3 回答
  • 0 關(guān)注
  • 686 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號