簡介:
正規表示式在各種程式應用中發揮重要作用,包括資料擷取和文字操作。了解如何利用正規表示式群組對於在 C# 中充分發揮其潛力至關重要。
理解問題:
開發人員繼承了一個執行正規表示式匹配的程式碼區塊,並感到困惑透過正規表示式模式所獲得的結果:
var pattern = @"\[(.*?)\]";
對於使用者輸入“Josh Smith [jsmith]”,結果看起來很簡單:
matches[0].Value == "[jsmith]"
但是,開發人員感到困惑通過附加結果:
matches[0].Groups[1].Value == "jsmith"
回答問題:
1.為什麼「jsmith」與matches[0].Groups[1].Value 相符?
正規表示式模式包含單一捕獲組,以 (.*?) 表示。此捕獲組匹配左方括號和右方括號之間的所有字元。在本例中,它捕獲“jsmith”。
2. matches[0].Groups 總是儲存多少個群組?
Groups 集合通常儲存兩個群組:整個匹配項和最後一個匹配項。但是,組的數量可能會根據正規表示式模式中指定的捕獲組而有所不同。
其他說明:
範例:
考慮更複雜的模式:
var pattern = @"\[(.*?)\](.*)";
對於輸入「ignored [john] John Johnson」:
以上是C# 正規表示式中的 `matches[0].Value` 和 `matches[0].Groups[1].Value` 有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!