ホームページ >バックエンド開発 >Golang >Ruby の名前付きキャプチャ グループを Go 正規表現で複製するにはどうすればよいですか?

Ruby の名前付きキャプチャ グループを Go 正規表現で複製するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-24 11:11:13541ブラウズ

How Can I Replicate Ruby's Named Capturing Groups in Go Regular Expressions?

Go の正規表現でグループ機能をキャプチャする

Go の正規表現 (Google RE2 ライブラリを使用) は、サポートする Ruby の正規表現とは異なります。グループを捕獲します。したがって、Ruby からコードを移植する場合は、Go と互換性があるように正規表現を書き直す必要があります。

たとえば、Ruby の正規表現を考えてみましょう。

(?<Year>\d{4})-(?<Month>\d{2})-(?<Day>\d{2})

この式は年をキャプチャします。 、月、日を名前付きキャプチャ グループに分類し、簡単に取得できるようにします。 Go で同様の機能を実現するには、次の定義に従っていくつかの P を追加します。

(?P<Year>\d{4})-(?P<Month>\d{2})-(?P<Day>\d{2})

re.SubexpNames():

package main

import (
    "fmt"
    "regexp"
)

func main() {
    r := regexp.MustCompile(`(?P<Year>\d{4})-(?P<Month>\d{2})-(?P<Day>\d{2})`)
    fmt.Printf("%#v\n", r.FindStringSubmatch(`2015-05-27`))
    fmt.Printf("%#v\n", r.SubexpNames())
}
を使用してキャプチャ グループ名を相互参照します。

以上がRuby の名前付きキャプチャ グループを Go 正規表現で複製するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。