Dasar-Dasar regexp
Kompilasi dan cocokkan pola
Dasar-Dasar regexp adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.
Apa Itu Ekspresi Reguler?
Ekspresi reguler (regexp) adalah pola yang menjelaskan sekumpulan teks. Go menyediakannya melalui paket regexp.
Ekspresi reguler sangat cocok untuk memvalidasi dan mencari teks.
package main
import (
"fmt"
"regexp"
)
func main() {
matched, _ := regexp.MatchString("go+", "gooo")
fmt.Println(matched)
}Pencocokan Cepat dengan MatchString
regexp.MatchString(pattern, s) menunjukkan apakah pola muncul di mana saja dalam s. Fungsi tersebut mengembalikan nilai bool dan sebuah error.
package main
import (
"fmt"
"regexp"
)
func main() {
ok, _ := regexp.MatchString("cat", "the cat sat")
fmt.Println(ok)
}Mengompilasi Pola
Untuk penggunaan berulang, lakukan kompilasi sekali dengan regexp.Compile. Fungsi tersebut mengembalikan *regexp.Regexp yang dapat digunakan kembali dan sebuah error untuk pola yang tidak valid.
package main
import (
"fmt"
"regexp"
)
func main() {
re, err := regexp.Compile("[0-9]+")
fmt.Println(re.MatchString("abc123"), err)
}MustCompile untuk Konstanta
regexp.MustCompile memicu panic jika polanya tidak valid. Gunakan untuk pola tetap yang diketahui saat kompilasi, biasanya dalam variabel tingkat paket.
package main
import (
"fmt"
"regexp"
)
var digits = regexp.MustCompile("[0-9]+")
func main() {
fmt.Println(digits.MatchString("order 42"))
}Kelas Karakter
Tanda kurung siku mendefinisikan kumpulan karakter yang diizinkan. [aeiou] cocok dengan vokal apa pun; rentang seperti [a-z] cocok dengan suatu rentang.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("[a-z]+")
fmt.Println(re.MatchString("Hello"))
}Kelas yang Telah Ditentukan
Pintasan memudahkan penggunaan kumpulan umum: \d adalah digit, \w adalah karakter kata, dan \s adalah spasi kosong. Dalam teks Go, lakukan pelolosan pada garis miring terbalik.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("\\d+")
fmt.Println(re.MatchString("abc 99"))
}Kuantifikator
Kuantifikator menyatakan berapa kali:
*nol kali atau lebih,+satu kali atau lebih,?nol kali atau satu kali,{2,4}suatu rentang.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("a{2,3}")
fmt.Println(re.MatchString("aaa"))
fmt.Println(re.MatchString("a"))
}Jangkar
Jangkar menetapkan posisi pencocokan: ^ berarti awal teks dan $ berarti akhir teks. Gunakan keduanya untuk mengharuskan seluruh teks cocok.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("^go$")
fmt.Println(re.MatchString("go"))
fmt.Println(re.MatchString("going"))
}Alternasi dan Grup
Garis vertikal | berarti OR, dan tanda kurung mengelompokkan bagian-bagian. (cat|dog)s? cocok dengan cat, cats, dog, atau dogs.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("(cat|dog)s?")
fmt.Println(re.MatchString("dogs"))
}Memvalidasi Format
Pola dengan jangkar dapat digunakan sebagai pemeriksa. Di sini kita memeriksa kode bergaya ZIP sederhana yang hanya terdiri dari tepat lima digit.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("^\\d{5}$")
fmt.Println(re.MatchString("12345"))
fmt.Println(re.MatchString("123"))
}Mencocokkan pada Bita
Metode tersedia dalam bentuk teks dan irisan bita. Match bekerja pada []byte, serupa dengan MatchString.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("[0-9]+")
fmt.Println(re.Match([]byte("id7")))
}Pemeriksaan Singkat
Fungsi mana yang memicu panic pada pola yang tidak valid dan paling sesuai untuk pola tetap?
Ringkasan: Dasar-Dasar regexp
Anda telah mempelajari dasar-dasarnya:
- Lakukan pencocokan dengan cepat menggunakan
MatchString; kompilasikan denganCompileatauMustCompile. - Bangun pola dari kelas, kuantifikator, jangkar, dan grup.
- Gunakan jangkar
^dan$untuk validasi seluruh teks.
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("^[a-z]+@[a-z]+$")
fmt.Println(re.MatchString("hi@host"))
}Pertanyaan yang Sering Diajukan
Apakah pelajaran “Dasar-Dasar regexp” gratis?
Ya — teks lengkap “Dasar-Dasar regexp” 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 “Dasar-Dasar regexp”?
Kompilasi dan cocokkan pola 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 1 dari 4.
Berapa lama pelajaran “Dasar-Dasar regexp” 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