Menu

Regex Tester

Uji regular expression dengan sorotan kecocokan beranimasi.

Oleh Nethanel Bar, Co-founder & CEO

Terakhir diperbarui

Siap benar-benar belajar coding?

Coddy mengajarimu dengan menulis kode sungguhan di browser: pelajaran interaktif, umpan balik instan, dan bantuan AI saat kamu buntu.

Apa itu regex tester?

Regex tester memungkinkan kamu mengetik regular expression dan langsung melihat apa yang dicocokkannya di teks contoh. Developer memakai regex (regular expression) untuk memvalidasi input, mengambil data dari string, mencari di log, membersihkan teks, membuat perintah editor, dan menulis aturan cari-dan-ganti.

Regex terasa membingungkan pada awalnya karena beberapa simbol membawa banyak makna. Tester langsung membuatnya lebih mudah dipahami: setiap karakter yang kamu ketik memperbarui kecocokan yang disorot dan capture group-nya, jadi kamu bisa bereksperimen sampai polanya bekerja persis seperti yang kamu mau.

Bahasa pemrograman yang berbeda memakai mesin regex yang sedikit berbeda (JavaScript, PCRE, Python, Java, Go, .NET). Dasar-dasarnya, yaitu karakter, character class, quantifier, anchor, dan group, berlaku di mana saja. Fitur lanjutan (lookbehind, named group, possessive quantifier) adalah tempat mesin-mesin itu mulai berbeda.

Yang kamu pelajari saat menguji regex

  • Pola menggambarkan *bentuk* teks, bukan maknanya. \d+ cocok dengan deretan digit, tapi tidak tahu apakah angkanya masuk akal.
  • Flag mengubah perilaku: g mencari setiap kecocokan, i mengabaikan huruf besar dan kecil, m membuat ^ dan $ cocok dengan akhir baris, s membuat . cocok dengan baris baru.
  • Capture group (...) mengambil bagian dari sebuah kecocokan, bukan hanya memeriksa apakah seluruh string cocok. Ini sangat penting untuk parsing.
  • Quantifier secara bawaan bersifat *greedy* (mencocokkan sebanyak mungkin). Menambahkan ? membuatnya *lazy* (mencocokkan sesedikit mungkin).

Cara memakai regex tester langkah demi langkah

  1. Ketik polamu

    Masukkan regular expression di kolom pola. Jangan sertakan garis miring / di kedua sisinya, karena itu sintaks literal JavaScript, bukan bagian dari polanya.

  2. Aktifkan flag yang kamu butuhkan

    Biasanya kamu butuh g (cari semua kecocokan) dan i (tidak peka huruf besar dan kecil). Pakai m untuk anchor per baris dan s supaya . cocok dengan baris baru.

  3. Tempel string ujimu

    Taruh teks contoh di area uji. Kecocokan langsung disorot saat kamu mengetik, dan capture group ditampilkan di bawah daftar kecocokan.

  4. Baca panel kecocokan

    Setiap kecocokan menampilkan posisinya, teks lengkapnya, dan group yang tertangkap. Pakai ini untuk memastikan polanya menangkap yang kamu mau dan melewatkan yang tidak.

  5. Perbaiki sampai benar

    Perketat quantifier, tambahkan anchor (^, $), atau escape karakter literal (\., \?) sampai kecocokan dan group-nya persis seperti yang dibutuhkan kodemu.

Cheat sheet regex

80% regex yang akan kamu pakai 99% dari waktu. Simpan halaman ini, karena inilah cara tercepat untuk mengingat sintaksnya. Untuk tata bahasa lengkapnya, lihat panduan regular expression di MDN.

TokenArtiContoh
.Satu karakter apa pun (kecuali baris baru)a.c cocok dengan abc, a-c
\d \DDigit / bukan digit\d+ cocok dengan 123
\w \WKarakter kata (huruf/digit/_) / bukan karakter kata\w+ cocok dengan hello_1
\s \SWhitespace / bukan whitespace\s+ cocok dengan spasi dan tab
[abc]Salah satu dari a, b, atau c[aeiou] cocok dengan satu huruf vokal
[^abc]Bukan a, b, maupun c[^0-9] cocok dengan selain digit
* + ?0+, 1+, 0 atau 1 dari yang sebelumnyaa+ cocok dengan a, aaa
{n} {n,m}Tepat n / antara n dan m\d{3,5} 3 sampai 5 digit
^ $Awal / akhir string (atau baris dengan m)^Error baris yang diawali Error
(...)Capture group(\d+) menangkap digitnya
(?:...)Group tanpa capture(?:foo|bar) group tanpa menangkap
a|bAlternasi: a atau byes|no
\bBatas kata\bcat\b cocok dengan cat, bukan cats

Contoh regex untuk dicoba

Mencocokkan bentuk email sederhana

Pola
^[\w.+-]+@[\w-]+\.[\w.-]+$
Teks

learner@coddy.tech

Pola ini menangkap bentuk dasar something@something.something. Validasi email di dunia nyata jauh lebih longgar dari ini. Untuk formulir, lebih baik pakai type="email" dan pemeriksaan di server.

Mengambil setiap angka dari sebuah kalimat

Pola
\d+
Teks

Lesson 12 has 3 tasks and 2 quizzes.

Dengan flag g, pola ini menemukan setiap deretan digit: 12, 3, 2. \d+ adalah cara regex mengatakan "satu digit atau lebih".

Mengambil id dari URL dengan capture group

Pola
/users/(\d+)
Teks

/users/42/profile

Kecocokan lengkapnya adalah /users/42, dan capture group (\d+) hanya mengambil 42. Dengan capture group, kamu benar-benar bisa *memakai* hasil regex di kode.

Quantifier greedy vs lazy

Greedy
<.+>
Lazy
<.+?>
Teks

<b>hello</b>

Versi greedy mencocokkan seluruh string <b>hello</b> karena .+ mengambil sebanyak mungkin. Versi lazy (+?) berhenti di > pertama, jadi hanya mencocokkan <b> dan </b>.

Kesalahan umum saat menulis regex

  • Lupa meng-escape karakter khusus: ., ?, +, (, ), [, ], {, }, \, ^, $, |. Kalau maksudmu karakter itu apa adanya, beri awalan \.
  • Menulis pola yang berhasil untuk satu contoh, tapi gagal pada input nyata yang punya spasi ekstra, baris baru, atau field yang kosong.
  • Memakai .* secara greedy sehingga mencocokkan jauh lebih banyak dari yang dimaksud. Ganti dengan .*? atau character class yang lebih spesifik.
  • Mencoba mem-parse format yang bersarang dalam (HTML lengkap, bahasa pemrograman yang kompleks, tanda kurung berpasangan) dengan regex. Pakai parser sungguhan.
  • Lupa flag g lalu bingung kenapa hanya kecocokan pertama yang disorot.

FAQ Regex

Apa itu regex?

Regex adalah singkatan dari *regular expression*, yaitu bahasa pola ringkas untuk mencocokkan teks. Gagasan yang sama ada di hampir setiap bahasa pemrograman serta banyak editor dan tool command line.

Bagaimana cara menulis regex?
Mulailah dengan karakter literal yang ingin kamu cocokkan, lalu ganti bagian yang berubah-ubah dengan character class (\d, \w, [abc]) dan quantifier (*, +, ?, {n,m}). Pakai regex tester untuk mencoba berulang kali sampai polanya cocok persis dengan kasus yang kamu mau.
Apa arti \w di regex?
\w cocok dengan karakter kata, yaitu huruf, digit, atau garis bawah. \W adalah kebalikannya (karakter apa pun yang bukan karakter kata). Kumpulan tepatnya bergantung pada mesin regex dan flag Unicode.
Kenapa regex saya mencocokkan terlalu banyak?
Quantifier secara bawaan bersifat greedy, jadi .* mencocokkan sebanyak mungkin. Ganti dengan quantifier lazy (.*?) atau pakai character class yang lebih spesifik supaya berhenti di tempat yang kamu mau.
Apakah regex JavaScript sama dengan regex lainnya?
Dasarnya sama, tapi mesinnya berbeda. JavaScript, PCRE, re di Python, Java, Go, dan .NET masing-masing mendukung flag dan fitur lanjutan yang sedikit berbeda (dukungan lookbehind, named group, possessive quantifier).
Apakah pemula perlu belajar regex?

Ya, secara bertahap. Mulailah dengan literal, character class, quantifier, anchor, flag, dan capture group. Simpan lookaround, named group, dan regex kondisional untuk nanti.

Pelajari lebih lanjut

Alat developer lainnya

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai