首頁 >後端開發 >Golang >如何在Go正規表示式中使用捕獲組?

如何在Go正規表示式中使用捕獲組?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-26 12:37:09854瀏覽

How Can I Use Capturing Groups in Go Regular Expressions?

在Go 正規表示式中捕捉群組

將程式碼從Ruby 移植到Go 時,開發人員經常會遇到正規表示式的相容性問題。 Ruby 支援在正規表示式中擷取群組,這是 Go 的 RE2 程式庫本身不提供的功能。

重寫 Go 表達式

要模擬捕獲組功能,可以執行以下步驟拍攝:

1。使用命名捕獲組:
不要使用尖括號,而是在左括號和組名稱之間添加“P”,例如 (?Pd{4}) 表示年份組。

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn