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

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

Linda Hamilton
リリース: 2024-12-24 11:11:13
オリジナル
468 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート