Setiap token regex inti: anchor, kelas karakter, kuantifier, grup, dan flag. Arti masing-masing, dengan satu contoh kecocokan konkret. Pendamping referensi cepat untuk alat Regex Tester.
Token regex saling menyusun: gabungkan sebuah anchor, kelas karakter, dan kuantifier untuk membangun pola. ^ mengunci ke awal, \d mencocokkan digit, dan {2,4} mengatur berapa kali. Gabungkan menjadi ^\d{2,4}$ untuk mencocokkan seluruh string dua sampai empat digit. Baca pola dari kiri ke kanan, satu token sekaligus. Alat pendamping Regex Tester memungkinkan Anda mencoba token ini secara langsung pada teks Anda sendiri.
Mencocokkan posisi di awal string, atau awal baris dengan flag m.
^He → He
Mencocokkan posisi di akhir string, atau akhir baris dengan flag m.
lo$ → lo
Mencocokkan batas kata: posisi antara karakter kata dan karakter bukan kata.
\bcat\b → cat
Mencocokkan bukan batas kata: posisi antara dua karakter kata atau dua karakter bukan kata.
\Bar → ar
Kelas karakter
Mencocokkan satu karakter apa pun kecuali pindah baris, kecuali jika flag s disetel.
a.c → abc
Mencocokkan digit apa pun, 0 sampai 9.
\d → 7
Mencocokkan karakter apa pun yang bukan digit.
\D → a
Mencocokkan karakter kata apa pun: huruf, digit, atau garis bawah.
\w → _
Mencocokkan karakter apa pun yang bukan karakter kata.
\W → !
Mencocokkan karakter spasi apa pun: spasi, tab, atau pindah baris.
a\sb → a b
Mencocokkan karakter apa pun yang bukan spasi.
\S → a
Mencocokkan salah satu dari karakter yang tercantum di dalam kurung siku.
[aeiou] → e
Mencocokkan karakter apa pun yang bukan salah satu dari yang tercantum di dalam kurung siku.
[^aeiou] → s
Mencocokkan satu karakter apa pun dalam rentang yang diberikan, dari a sampai z.
[a-z] → m
Mencocokkan satu karakter apa pun termasuk pindah baris — idiom umum untuk titik yang melintasi baris.
[\s\S] → \n
Mencocokkan huruf unicode apa pun dari aksara apa pun, saat flag u disetel.
\p{L} → é
Mencocokkan karakter angka unicode apa pun dari aksara apa pun, saat flag u disetel.
\p{N} → ٣
Escape: mencocokkan satu karakter line feed.
\n → line feed
Escape: mencocokkan satu karakter tab.
\t → tab
Escape: mencocokkan satu karakter carriage return.
\r → carriage return
Mencocokkan satu karakter dengan kode heksadesimal dua digit yang diberikan.
\x41 → A
Mencocokkan satu karakter dengan titik kode heksadesimal yang diberikan, saat flag u disetel.
\u{1F600} → 😀
Irisan kelas, dengan flag v: mencocokkan karakter yang ada di kedua himpunan sekaligus.
[[a-z]&&[^aeiou]] → t
Kuantifier
Mencocokkan token sebelumnya nol kali atau lebih.
ab* → abbb
Mencocokkan token sebelumnya satu kali atau lebih.
a+ → aaa
Mencocokkan token sebelumnya nol atau satu kali, menjadikannya opsional.
colou?r → color
Mencocokkan token sebelumnya tepat n kali.
a{3} → aaa
Mencocokkan token sebelumnya n kali atau lebih.
a{2,} → aaaa
Mencocokkan token sebelumnya antara n dan m kali, inklusif.
a{2,4} → aaa
Kuantifier malas: mencocokkan token sebelumnya nol kali atau lebih, mengambil sesedikit mungkin.
<.*?> on <a><b> → <a>
Kuantifier malas: mencocokkan token sebelumnya satu kali atau lebih, mengambil sesedikit mungkin.
\d+? on 123 → 1
Kuantifier malas: mencocokkan token sebelumnya nol atau satu kali, memilih nol.
ab?? on ab → a
Kuantifier malas: mencocokkan token sebelumnya antara n dan m kali, mengambil sesedikit mungkin.
a{1,3}? on aaa → a
Kuantifier possessive (PCRE): mencocokkan token sebelumnya nol kali atau lebih dan mempertahankannya, tanpa pernah backtrack untuk mencoba pembagian lain.
.*+a on aaa → no match
Grup dan alternasi
Grup penangkap: mencocokkan urutan dan mengingatnya untuk backreference.
(ab)+ → abab
Grup non-penangkap: mencocokkan urutan tanpa mengingatnya.
(?:ab)+ → abab
Lookahead positif: cocok jika karakter berikutnya adalah abc, tanpa mengonsumsinya.
a(?=b) → a
Lookahead negatif: cocok jika karakter berikutnya bukan abc, tanpa mengonsumsinya.
a(?!b) → a
Backreference: mencocokkan teks persis yang ditangkap grup penangkap 1.
(a)\1 → aa
Alternasi: mencocokkan ekspresi sebelum atau sesudah garis vertikal.
cat|dog → dog
Grup penangkap bernama: mencocokkan urutan dan mengingatnya dengan nama yang diberikan.
(?<year>\d{4}) → year = 2026
Lookbehind positif: cocok jika karakter sebelumnya adalah abc, tanpa mengonsumsinya.
(?<=a)b → b
Lookbehind negatif: cocok jika karakter sebelumnya bukan abc, tanpa mengonsumsinya.
(?<!a)b → b
Backreference bernama: mencocokkan teks persis yang ditangkap grup bernama.
(?<w>\w+) \k<w> → the the
Grup atomik (PCRE): mencocokkan urutan sekali dan tidak pernah backtrack ke dalamnya.
(?>a+)ab on aab → no match
Branch reset (PCRE): alternasi di mana setiap cabang memakai ulang nomor grup yang sama.
(?|(cat)|(dog)) → \1 = dog
Flag
Flag global: menemukan setiap kecocokan dalam string, bukan hanya yang pertama.
/a/g on aaa → a, a, a
Flag tidak peka huruf besar/kecil: abaikan besar kecil huruf saat mencocokkan.
/Hi/i → hi
Flag multiline: perlakukan ^ dan $ sebagai awal dan akhir setiap baris.
/^a/m matches at the start of each line
Flag dotall: izinkan titik mencocokkan pindah baris juga.
/a.b/s → a\nb
Flag unicode: perlakukan pola dan inputnya sebagai titik kode unicode.
/\u{1F600}/u → 😀
Flag sticky: mencocokkan hanya pada posisi persis yang ditetapkan lastIndex.
/ab/y matches only at lastIndex
Flag indeks: menambahkan posisi awal dan akhir setiap kecocokan ke hasil.
/b/d on abc → indices [1, 2]
Flag unicode sets: u yang lebih ketat yang juga mengizinkan operasi himpunan di dalam kelas.
/[a-z&&[^aeiou]]/v → t
Flag extended (PCRE): mengabaikan spasi tanpa escape dan komentar # di dalam pola.