在Go 正規表示式中捕捉群組
將程式碼從Ruby 移植到Go 時,開發人員經常會遇到正規表示式的相容性問題。 Ruby 支援在正規表示式中擷取群組,這是 Go 的 RE2 程式庫本身不提供的功能。
重寫 Go 表達式
要模擬捕獲組功能,可以執行以下步驟拍攝:
1。使用命名捕獲組:
不要使用尖括號,而是在左括號和組名稱之間添加“P”,例如 (?P
2.交叉引用組名稱:
利用 regexp.SubexpNames() 函數取得捕獲組名稱清單。
3.存取捕獲的資料:
使用適當的群組名稱作為 FindStringSubmatch 等函數的參數來檢索捕獲的值。
範例:
package main import ( "fmt" "regexp" ) func main() { r := regexp.MustCompile(`(?P<Year>\d{4})-(?P<Month>\d{2})-(?P<Day>\d{2})`) s := `2015-05-27` fmt.Printf("Matched Substrings: %#v\n", r.FindStringSubmatch(s)) fmt.Printf("Group Names: %#v\n", r.SubexpNames()) }
輸出:
Matched Substrings: [2015 05 27] Group Names: [ Year Month Day ]
以上是如何在Go正規表示式中使用捕獲組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!