Mengganti Teks
Pola ReplaceAll
Mengganti Teks adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.
Penggantian Berbasis Pola
Regexp dapat menulis ulang teks, bukan hanya menemukannya. ReplaceAllString mengganti setiap kecocokan dengan teks pengganti.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("[0-9]+")
fmt.Println(re.ReplaceAllString("a1b2c3", "#"))
}Mengganti Kata Lengkap
Pola seperti cat|dog memungkinkan Anda mengganti beberapa alternatif dalam satu proses.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("cat|dog")
fmt.Println(re.ReplaceAllString("my cat and dog", "pet"))
}Meringkas Spasi Kosong
Pembersihan yang umum dilakukan adalah mengganti rangkaian spasi kosong dengan satu spasi menggunakan \s+.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("\\s+")
fmt.Println(re.ReplaceAllString("too many spaces", " "))
}Merujuk ke Grup
Dalam penggantian, $1 menyisipkan grup tangkapan pertama, sedangkan $2 menyisipkan grup kedua. Cara ini menyusun ulang bagian-bagian yang cocok.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("(\\d+)-(\\d+)")
fmt.Println(re.ReplaceAllString("12-34", "$2-$1"))
}Referensi Grup Bernama
Dengan grup bernama, Anda dapat menggunakan ${name} dalam penggantian agar lebih jelas.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("(?P<y>\\d{4})-(?P<m>\\d{2})")
fmt.Println(re.ReplaceAllString("2026-05", "${m}/${y}"))
}Kurung Kurawal yang Aman
Gunakan kurung kurawal ${1} ketika teks mengikuti referensi grup, agar $1 tidak disalahartikan sebagai nama yang lebih panjang.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("(\\d+)")
fmt.Println(re.ReplaceAllString("7", "${1}px"))
}Penggantian Literal
ReplaceAllLiteralString mengabaikan referensi $ dan menyisipkan penggantian persis seperti yang ditulis.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("[0-9]+")
fmt.Println(re.ReplaceAllLiteralString("a1", "$money"))
}Mengganti dengan Fungsi
ReplaceAllStringFunc memanggil fungsi Anda untuk setiap kecocokan dan menggantinya dengan apa pun yang dikembalikan fungsi tersebut. Dengan demikian, Anda dapat menghitung penggantian.
package main
import (
"fmt"
"regexp"
"strings"
)
func main() {
re := regexp.MustCompile("[a-z]+")
out := re.ReplaceAllStringFunc("go is fun", strings.ToUpper)
fmt.Println(out)
}Penggantian Terhitung
Di dalam fungsi, Anda dapat mengubah setiap kecocokan sesuka Anda; di sini, setiap rangkaian digit yang cocok digandakan dengan membungkusnya.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("[0-9]+")
out := re.ReplaceAllStringFunc("id5 and id9", func(m string) string {
return "<" + m + ">"
})
fmt.Println(out)
}Menyamarkan Data Sensitif
Salah satu penggunaan praktisnya adalah menyamarkan angka, seperti rangkaian digit bergaya nomor kartu, sebelum pencatatan.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("\\d{4}")
fmt.Println(re.ReplaceAllString("card 1234 5678", "****"))
}Bekerja dengan Byte
Varian slice byte seperti ReplaceAll juga tersedia, dengan metode yang mencerminkan metode string untuk data biner atau buffer.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("[0-9]+")
out := re.ReplaceAll([]byte("a1b2"), []byte("#"))
fmt.Println(string(out))
}Pemeriksaan Cepat
Bagaimana cara menyisipkan grup tangkapan pertama dalam string penggantian?
Ringkasan: Mengganti Teks
Anda telah mempelajari cara menulis ulang teks:
ReplaceAllStringmenukar kecocokan;$1/${name}merujuk ke grup.ReplaceAllLiteralStringmelewati perluasan.ReplaceAllStringFuncmenghitung setiap penggantian.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("(\\w+)\\s(\\w+)")
fmt.Println(re.ReplaceAllString("Ada Lovelace", "$2, $1"))
}Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mengganti Teks” gratis?
Ya — teks lengkap “Mengganti Teks” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Mengganti Teks”?
Pola ReplaceAll Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Go Academy?
Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Mengganti Teks” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?
Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Dasar-Dasar regexp
- Menemukan dan Mengekstrak
- Mengganti Teks
- Tips Performa