Lewati ke konten

Penguji & Validator Regex Online Gratis - Uji Pola Seketika

Uji dan validasi ekspresi reguler secara online dengan penyorotan waktu nyata. Penguji pola regex gratis dengan validasi sintaks, hasil pencocokan, dan fungsionalitas penyimpanan. Uji regex sekarang!

Penguji Pola Regex

Hasil Pencocokan

Masukkan pola dan teks uji untuk melihat hasil

Simpan Pola

Pola Tersimpan

Belum ada pola tersimpan

Panduan Simbol Regex

.Mencocokkan karakter apa pun kecuali baris baru
\dMencocokkan digit apa pun (0-9)
\DMencocokkan karakter non-digit
\wMencocokkan karakter kata (a-z, A-Z, 0-9, _)
\WMencocokkan karakter non-kata
\sMencocokkan karakter spasi
\SMencocokkan karakter non-spasi
^Mencocokkan awal baris
$Mencocokkan akhir baris
*Mencocokkan 0 atau lebih karakter sebelumnya
+Mencocokkan 1 atau lebih karakter sebelumnya
?Mencocokkan 0 atau 1 karakter sebelumnya
{n}Mencocokkan tepat n karakter sebelumnya
{n,}Mencocokkan setidaknya n karakter sebelumnya
{n,m}Mencocokkan antara n dan m karakter sebelumnya
[abc]Mencocokkan salah satu karakter dalam kurung siku
[^abc]Mencocokkan karakter apa pun yang tidak ada dalam kurung siku
(abc)Mengelompokkan beberapa token bersama dan menangkap kecocokan
a|bMencocokkan a atau b
\bMencocokkan posisi batas kata
Kalkulator pemuatan...
📚

Dokumentasi

Apa itu penguji regex

Penguji regex adalah alat yang memeriksa ekspresi reguler terhadap sepotong teks dan menampilkan bagian yang cocok. Ekspresi reguler, atau regex, adalah rangkaian karakter singkat yang menjelaskan pola dalam teks, seperti "tiga digit berturut-turut" atau "kata apa pun yang diawali huruf kapital". Validator regex ini memungkinkan seseorang mengetik pola dan teks uji, lalu langsung melihat kecocokan yang disorot tanpa menulis kode.

Ekspresi reguler digunakan dalam banyak bahasa pemrograman untuk mencari teks, memeriksa apakah masukan pengguna memiliki format yang benar, dan mengambil bagian tertentu dari blok teks yang lebih besar. Sintaksnya ringkas tetapi mudah keliru, sehingga menguji pola sebelum menggunakannya dalam program membantu menemukan kesalahan sejak awal.

Cara menguji ekspresi reguler secara online

  1. Ketik pola. Masukkan regex di bidang pola. Alat ini memeriksa sintaks saat pengguna mengetik dan menampilkan pesan kesalahan jika pola tidak valid, misalnya jika tanda kurung siku atau tanda kurung biasa belum ditutup.
  2. Pilih flag. Flag mengubah cara pola diterapkan (lihat di bawah).
  3. Masukkan teks uji. Ketik atau tempel teks yang akan dicari di kotak teks uji.
  4. Baca hasilnya. Kecocokan disorot dalam teks, dan alat ini melaporkan jumlah kecocokan yang ditemukan. Jika terdapat teks uji, alat ini juga menyatakan apakah pola cocok dengan seluruh teks dari awal hingga akhir, atau hanya sebagian.
  5. Simpan pola. Pola dapat disimpan dengan label singkat agar dapat digunakan kembali nanti. Pola yang disimpan disimpan di peramban, bukan di server, sehingga hanya muncul pada perangkat dan peramban yang sama.
  6. Salin hasil. Teks yang cocok atau pola itu sendiri dapat disalin ke papan klip dengan satu klik.

Flag regex

Flag adalah satu huruf yang ditambahkan setelah pola dan mengubah perilakunya. Alat ini mendukung empat flag, baik sendiri maupun digabungkan:

FlagNamaEfek
gGlobalMenemukan setiap kecocokan dalam teks, bukan berhenti pada kecocokan pertama.
iTidak peka huruf besar-kecilMengabaikan perbedaan huruf besar dan huruf kecil.
mMultibarisMembuat ^ dan $ cocok dengan awal dan akhir setiap baris, bukan hanya awal dan akhir seluruh teks. Flag ini mengubah lokasi ditemukannya kecocokan, tetapi tidak mengubah pemeriksaan seluruh teks yang dijelaskan di bawah.
sTitik mencocokkan semuaMembuat . juga cocok dengan karakter baris baru.

Flag dapat digabungkan, misalnya gi untuk global dan tidak peka huruf besar-kecil, atau gms untuk global, multibaris, dan titik mencocokkan semua secara bersamaan.

Cara alat menemukan kecocokan

Pencocok selalu mencari setiap kemunculan pola dalam teks. Karena itu, penghitungan kecocokan berperilaku seolah-olah flag global aktif meskipun tidak dipilih di menu tarik-turun. Setiap kecocokan dicatat bersama posisi dan panjangnya, lalu teks asli dipecah menjadi bagian yang cocok dan tidak cocok agar kecocokan dapat disorot.

Untuk memeriksa apakah pola cocok dengan seluruh teks, alat ini membungkus pola dalam grup non-penangkap dan memberi jangkar: ^(?:pattern)$. Pengelompokan penting karena | (alternasi) memiliki prioritas lebih rendah daripada jangkar. Tanpa grup tersebut, pola seperti cat|dog yang diberi jangkar sebagai ^cat|dog$ sebenarnya berarti "diawali cat, atau diakhiri dog", yang tidak sama dengan "seluruh teksnya adalah cat atau dog".

Pemeriksaan ini juga menghapus flag multibaris. Dengan m aktif, ^ dan $ cocok di setiap pemisah baris, sehingga pengujian berjangkar akan menjawab "apakah salah satu baris cocok?" dan bukan "apakah seluruh teks cocok?". Alat ini menghapus m untuk pemeriksaan ini dan mempertahankan i serta s, karena kedua flag tersebut mengubah hal yang dicocokkan pola, bukan posisi jangkar. Jadi, jawaban selalu merujuk pada teks lengkap, termasuk pemisah barisnya.

Contoh perhitungan

Pola: \d+ (satu digit atau lebih), flag: g, teks uji: Room 12 has 5 chairs.

  • Kecocokan yang ditemukan: 12 dan 5, sehingga jumlah kecocokannya adalah 2.
  • Pemeriksaan seluruh teks: pola tidak cocok dengan seluruh teks karena teks tersebut juga mengandung huruf dan spasi.

Jika teks uji diubah menjadi 12345, pola yang sama cocok dengan seluruh string, sehingga pemeriksaan seluruh teks menghasilkan true.

Referensi sintaks regex

Pencocokan karakter

SimbolArtiContohCocok dengan
.Karakter apa pun kecuali pemisah barisa.c"abc", "adc", "a1c"
\dDigit apa pun, dari 0 hingga 9\d{3}"123", "456"
\DKarakter apa pun yang bukan digit\D+"abc", "xyz"
\wHuruf, digit, atau garis bawah apa pun\w+"abc123", "test_123"
\WKarakter apa pun yang bukan huruf, digit, atau garis bawah\W+"!@#"
\sKarakter spasi kosong apa puna\sb"a b"
\SKarakter apa pun yang bukan spasi kosong\S+"abc"

Jangkar posisi

SimbolArtiContohCocok dengan
^Awal baris^abc"abc" di awal baris
$Akhir barisabc$"abc" di akhir baris
\bBatas kata\bword\b"word" sebagai kata utuh

Kuantifikator

SimbolArtiContohCocok dengan
*Nol atau lebih dari item sebelumnyaa*b"b", "ab", "aab"
+Satu atau lebih dari item sebelumnyaa+b"ab", "aab"
?Nol atau satu dari item sebelumnyacolou?r"color", "colour"
{n}Tepat n dari item sebelumnyaa{3}"aaa"
{n,}Sedikitnya n dari item sebelumnyaa{2,}"aa", "aaa"
{n,m}Antara n dan m dari item sebelumnyaa{2,4}"aa", "aaa", "aaaa"

Himpunan karakter dan grup

SimbolArtiContohCocok dengan
[abc]Satu karakter apa pun yang tercantum di dalam tanda kurung siku[aeiou]satu vokal apa pun
[^abc]Karakter apa pun yang tidak tercantum di dalam tanda kurung siku[^aeiou]karakter apa pun yang bukan vokal
(abc)Mengelompokkan karakter dan menangkap kecocokan(abc)+"abc", "abcabc"
a\bCocok dengan a atau bcat\

Ada dua fitur lain yang perlu diketahui. Lookahead, yang ditulis sebagai a(?=b), mencocokkan "a" hanya jika diikuti "b" tanpa menyertakan "b" dalam kecocokan. Lookbehind, yang ditulis sebagai (?<=a)b, mencocokkan "b" hanya jika tepat setelah "a".

Contoh pola umum

Pola-pola ini dapat ditempelkan ke alat untuk melihat perilakunya terhadap teks contoh.

Hanya digit: ^\d+$ mencocokkan string yang seluruhnya terdiri dari digit, seperti "48210", dan menolak apa pun yang mengandung huruf atau spasi.

Alamat email (pemeriksaan dasar): ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ mencocokkan alamat dalam bentuk name@domain.tld, seperti "user@example.com". Ini adalah pemeriksaan sederhana, bukan format email lengkap yang ditetapkan oleh standar internet, sehingga beberapa alamat valid yang tidak umum akan gagal dalam pemeriksaan ini.

Nomor telepon AS: ^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$ mencocokkan format seperti "(123) 456-7890", "123-456-7890", dan "1234567890".

Tanggal dalam format YYYY-MM-DD: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ memeriksa bahwa bulan berada antara 01 dan 12, serta hari berada antara 01 dan 31. Pemeriksaan ini tidak memastikan bahwa hari tersebut valid untuk bulan tertentu, sehingga menerima "2024-02-30" meskipun Februari tidak pernah memiliki 30 hari.

Pertanyaan yang sering diajukan

Apa itu ekspresi reguler? Ekspresi reguler adalah rangkaian karakter yang mendefinisikan pola pencarian. Ekspresi ini digunakan untuk mencari, mencocokkan, dan mengedit teks dalam sebagian besar bahasa pemrograman dan editor teks.

Apa fungsi flag global? Tanpa flag global, pencarian biasanya berhenti setelah kecocokan pertama. Dengan flag global (g), pencarian berlanjut dan melaporkan setiap kecocokan dalam teks. Alat ini selalu mencari semua kecocokan saat menghitungnya, terlepas dari flag yang dipilih.

Bagaimana cara mencocokkan titik literal atau karakter khusus lainnya? Letakkan garis miring terbalik sebelum karakter tersebut. Misalnya, \. mencocokkan titik literal, bukan "karakter apa pun" seperti yang dimaksud oleh . tanpa pelolosan.

Apa perbedaan antara .* dan .*?? .* bersifat rakus dan mencocokkan sebanyak mungkin karakter. .*? bersifat malas dan mencocokkan sesedikit mungkin karakter selama bagian pola lainnya tetap berhasil.

Mengapa alat ini menyatakan teks tidak cocok seluruhnya ketika setiap baris cocok? Pemeriksaan seluruh teks memperlakukan teks sebagai satu string, termasuk pemisah baris. Pola seperti \d+ mencocokkan setiap baris 12 dan 34 secara terpisah, tetapi kedua baris beserta pemisah baris di antaranya tidak seluruhnya berupa digit, sehingga jawaban untuk seluruh teks adalah tidak. Untuk mencocokkan teks yang mencakup beberapa baris, pola juga harus mencakup pemisah baris, misalnya dengan [\s\S]+.

Bagaimana cara memeriksa bahwa seluruh string cocok dengan pola, bukan hanya sebagian? Tambahkan ^ di awal dan $ di akhir pola, misalnya ^[0-9]+$ untuk string yang hanya berisi digit.

Apakah penguji ini mengikuti aturan regex bahasa pemrograman lain? Alat ini menggunakan mesin ekspresi reguler bawaan JavaScript. Sebagian besar sintaks inti, seperti kelas karakter dan kuantifikator, digunakan bersama oleh berbagai bahasa termasuk Python, Java, dan Perl, tetapi beberapa detail berbeda. Karena itu, pola yang berfungsi di sini tidak dijamin berperilaku sama di semua tempat.

Referensi

  1. "Regular expression." Wikipedia, Wikimedia Foundation. https://en.wikipedia.org/wiki/Regular_expression
  2. MDN Web Docs. "Regular expressions." Mozilla. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
  3. Friedl, J. E. F. (2006). Mastering Regular Expressions. O'Reilly Media.