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
Hasil Pencocokan
Masukkan pola dan teks uji untuk melihat hasil
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 kecocokana|bMencocokkan a atau b\bMencocokkan posisi batas kataDokumentasi
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
- 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.
- Pilih flag. Flag mengubah cara pola diterapkan (lihat di bawah).
- Masukkan teks uji. Ketik atau tempel teks yang akan dicari di kotak teks uji.
- 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.
- 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.
- 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:
| Flag | Nama | Efek |
|---|---|---|
g | Global | Menemukan setiap kecocokan dalam teks, bukan berhenti pada kecocokan pertama. |
i | Tidak peka huruf besar-kecil | Mengabaikan perbedaan huruf besar dan huruf kecil. |
m | Multibaris | Membuat ^ 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. |
s | Titik mencocokkan semua | Membuat . 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:
12dan5, 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
| Simbol | Arti | Contoh | Cocok dengan |
|---|---|---|---|
. | Karakter apa pun kecuali pemisah baris | a.c | "abc", "adc", "a1c" |
\d | Digit apa pun, dari 0 hingga 9 | \d{3} | "123", "456" |
\D | Karakter apa pun yang bukan digit | \D+ | "abc", "xyz" |
\w | Huruf, digit, atau garis bawah apa pun | \w+ | "abc123", "test_123" |
\W | Karakter apa pun yang bukan huruf, digit, atau garis bawah | \W+ | "!@#" |
\s | Karakter spasi kosong apa pun | a\sb | "a b" |
\S | Karakter apa pun yang bukan spasi kosong | \S+ | "abc" |
Jangkar posisi
| Simbol | Arti | Contoh | Cocok dengan |
|---|---|---|---|
^ | Awal baris | ^abc | "abc" di awal baris |
$ | Akhir baris | abc$ | "abc" di akhir baris |
\b | Batas kata | \bword\b | "word" sebagai kata utuh |
Kuantifikator
| Simbol | Arti | Contoh | Cocok dengan |
|---|---|---|---|
* | Nol atau lebih dari item sebelumnya | a*b | "b", "ab", "aab" |
+ | Satu atau lebih dari item sebelumnya | a+b | "ab", "aab" |
? | Nol atau satu dari item sebelumnya | colou?r | "color", "colour" |
{n} | Tepat n dari item sebelumnya | a{3} | "aaa" |
{n,} | Sedikitnya n dari item sebelumnya | a{2,} | "aa", "aaa" |
{n,m} | Antara n dan m dari item sebelumnya | a{2,4} | "aa", "aaa", "aaaa" |
Himpunan karakter dan grup
| Simbol | Arti | Contoh | Cocok 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\ | b | Cocok dengan a atau b | cat\ |
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
- "Regular expression." Wikipedia, Wikimedia Foundation. https://en.wikipedia.org/wiki/Regular_expression
- MDN Web Docs. "Regular expressions." Mozilla. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
- Friedl, J. E. F. (2006). Mastering Regular Expressions. O'Reilly Media.