Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah fungsi ReplaceAllString Go mengendalikan rujukan belakang dan rujukan berubah dalam rentetan gantian?
Go ReplaceAllString Decoded
Fungsi ReplaceAllString dalam Go membenarkan penggantian subrentetan yang dipadankan dalam rentetan input yang diberikan. Pertimbangkan coretan kod berikut:
<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>
Output:
-T-T- --xx- --- -W-xxW-
Penjelasan:
2 . -ab-axxb- digantikan dengan $1 (RemoveAllString contoh)
Ini menggantikan subrentetan yang dipadankan dengan kandungan kumpulan tangkapan pertama dalam ungkapan biasa. Dalam kes ini, kumpulan penangkap sepadan dengan aksara antara a dan b, jadi outputnya ialah -xx-.
3. -ab-axxb- digantikan dengan $1W (RemoveAllString contoh)
Penggantian ini menggunakan rujukan belakang $1 untuk mengenal pasti subrentetan yang dipadankan, tetapi ia menambahkan "W" padanya. Walau bagaimanapun, memandangkan ungkapan biasa tidak mempunyai kumpulan penangkapan dengan nama 1W, rujukan $1W adalah kosong. Akibatnya, output ialah ---.
4. -ab-axxb- digantikan dengan ${1}W (RemoveAllString contoh)
Penggantian ini serupa dengan yang sebelumnya, tetapi ia menggunakan pendakap kerinting di sekeliling rujukan belakang ($1). Menurut dokumentasi Kembangkan, pendakap kerinting digunakan untuk menandakan rujukan berubah-ubah dan bukan rujukan belakang. Oleh kerana 1 bukan pembolehubah dalam ungkapan biasa, output ialah -W-xxW-.
Atas ialah kandungan terperinci Bagaimanakah fungsi ReplaceAllString Go mengendalikan rujukan belakang dan rujukan berubah dalam rentetan gantian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!