(他の)正規表現文字列に名前付きキャプチャグループを見つけるための正規表現を探しています。Goプログラム言語で名前付きのキャプチャグループを見つける正規表現
例:私は、次の正規表現で(?P<country>m((a|b).+)n)
、(?P<city>.+)
と(?P<street>(5|6)\. .+)
を見つけたい:
/(?P<country>m((a|b).+)n)/(?P<city>.+)/(?P<street>(5|6)\. .+)
私は名前のキャプチャグループを検索するには、次の正規表現を試してみました:
var subGroups string = `(\(.+\))*?`
var prefixedSubGroups string = `.+` + subGroups
var postfixedSubGroups string = subGroups + `.+`
var surroundedSubGroups string = `.+` + subGroups + `.+`
var capturingGroupNameRegex *regexp.RichRegexp = regexp.MustCompile(
`(?U)` +
`\(\?P<.+>` +
`(` + prefixedSubGroups + `|` + postfixedSubGroups + `|` + surroundedSubGroups + `)` +
`\)`)
?U
は貪欲な数量を作ります(+
および*
)非貪欲で非貪欲の量指定子(*?
)は貪欲です。 Go regex documentationの詳細
ただし、かっこが正しく一致していないために機能しません。
明確にする:Go正規表現パッケージは、RE2ライブラリを使用していません。 – zzzz
リンクをたどるだけです – mvp
OK、実際にはそのライブラリを使用しませんが、同じ構文を受け入れます。 –