Go ReplaceAllString Decoded
Go の ReplaceAllString 関数を使用すると、指定された入力文字列内で一致した部分文字列を置換できます。次のコード スニペットを考えてみましょう:
<code class="go">re := regexp.MustCompile("a(x*)b") fmt.Println(re.ReplaceAllString("-ab-axxb-", "T")) fmt.Println(re.ReplaceAllString("-ab-axxb-", "")) fmt.Println(re.ReplaceAllString("-ab-axxb-", "W")) fmt.Println(re.ReplaceAllString("-ab-axxb-", "W"))</code>
出力:
-T-T- --xx- --- -W-xxW-
説明:
2 。 -ab-axxb- $1 に置き換えられます (RemoveAllString の例)
これにより、一致した部分文字列が正規表現内の最初のキャプチャ グループの内容に置き換えられます。この場合、キャプチャ グループは a と b の間の文字と一致するため、出力は -xx-.
3 となります。 -ab-axxb- $1W に置き換えられます (RemoveAllString の例)
この置換では、一致する部分文字列を識別するために $1 後方参照が使用されますが、それに「W」が追加されます。ただし、正規表現には 1W という名前のキャプチャ グループがないため、$1W 参照は空です。その結果、出力は ---.
4 となります。 -ab-axxb- ${1}W に置き換えられます (RemoveAllString の例)
この置換は前の置換と似ていますが、後方参照 ($1) を中括弧で囲んでいます。 Expand のドキュメントによると、中括弧は後方参照ではなく変数参照を示すために使用されます。 1 は正規表現の変数ではないため、出力は -W-xxW-.
となります。以上がGo の ReplaceAllString 関数は、置換文字列内の後方参照と変数参照をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。