Penjelasan Regex Online
Konversi pola regex ke bahasa Indonesia yang mudah dipahami, di browser Anda.
Untuk apa alat ini
Penjelas ekspresi reguler
Semua ragam
Kompatibel dengan pola JavaScript, Python, PCRE, Java, Go, dan Ruby.
100% privat
Analisis pola terjadi di browser Anda. Data Anda tidak pernah meninggalkan perangkat Anda.
Penjelasan yang jelas
Setiap token dalam pola dijelaskan dalam bahasa sederhana, dengan contoh kecocokan.
Instan
Penjelasan real-time saat Anda mengetik. Tanpa daftar, tanpa menunggu.
Cara kerjanya
Tiga langkah, tanpa kerumitan
Tempel ekspresi reguler Anda
Ketik atau tempel pola regex yang ingin Anda pahami, dengan atau tanpa pembatas.
Penjelasan instan
Alat ini menganalisis pola dan mendeskripsikan dalam bahasa sederhana apa yang dilakukan setiap bagian: grup, kuantifier, kelas karakter, dan lainnya.
Uji dengan teks nyata
Masukkan teks contoh untuk melihat bagian mana yang cocok dengan pola secara real-time.
FAQ
Ada pertanyaan?
Ekspresi reguler adalah bahasa pola untuk mencari dan memanipulasi teks. Ia memungkinkan Anda mendeskripsikan pola dengan tepat: misalnya, nomor telepon, alamat email, atau URL. Mesin regex memindai teks mencari string yang cocok dengan pola tersebut. Regex didukung oleh hampir semua bahasa pemrograman modern.
Email: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$. URL: https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}. Telepon internasional: \+?[1-9]\d{1,14}. Hanya digit: ^\d+$. Kode pos AS: ^\d{5}(-\d{4})?$.
Regex sangat ringkas: setiap karakter berpotensi memiliki arti khusus. Titik (.) cocok dengan karakter apa pun. Tanda bintang (*) berarti nol kali atau lebih. Tanda kurung siku ([]) mendefinisikan kelas karakter. Kepadatan informasi ini berarti ekspresi 20 karakter dapat merepresentasikan aturan yang sangat kompleks, tetapi juga membuatnya sulit dipahami sekilas tanpa latihan.
PCRE (Perl Compatible Regular Expressions) adalah standar de facto untuk PHP, Apache, nginx. JavaScript memiliki mesinnya sendiri dengan perbedaan: versi lama tidak mendukung lookbehind panjang variabel, dan memiliki flag /u untuk Unicode. Python menggunakan modul re dengan sintaksis mirip PCRE tetapi dengan beberapa perbedaan (misalnya, \A dan \Z untuk awal/akhir string). Go menggunakan RE2, yang tidak mendukung backreference karena alasan kinerja. Java menggunakan java.util.regex dengan sintaksis POSIX yang diperluas.
Karakter dengan arti khusus dalam regex adalah: . * + ? ^ $ { } [ ] | ( ) \. Untuk menggunakannya secara literal, loloskan dengan backslash: \. untuk titik literal, \* untuk tanda bintang literal. Dalam JavaScript di dalam string, Anda membutuhkan pelolosan ganda: '\\.' karena string sudah mengonsumsi satu backslash. Banyak bahasa menawarkan fungsi seperti re.escape() di Python atau preg_quote() di PHP.
Sejarah ekspresi reguler (Ken Thompson 1968, editor ed), teori bahasa formal, regex dalam pemrograman modern
Ekspresi reguler berakar pada teori bahasa formal yang dikembangkan oleh matematikawan Stephen Kleene pada 1950-an, yang mendefinisikan himpunan reguler dan notasi aljabar untuk mendeskripsikannya. Ken Thompson adalah orang pertama yang mengimplementasikan regex dalam perangkat lunak ketika ia mengintegrasikannya ke dalam editor teks Unix ed pada 1968 (dan kemudian di grep, yang namanya berasal dari global regular expression print). Implementasinya menggunakan kompilasi ke kode mesin untuk pencarian yang efisien, teknik yang meletakkan dasar bagi mesin regex modern.
Popularisasi massal regex datang dengan Perl pada 1980-an dan 1990-an. Larry Wall mengintegrasikan regex secara native ke dalam sintaksis bahasa, dan PCRE (Perl Compatible Regular Expressions) menjadi standar de facto. POSIX memformalkan dua level: BRE (Basic Regular Expressions) dan ERE (Extended Regular Expressions) dalam standar 1992. Saat ini, hampir semua bahasa pemrograman menyertakan dukungan regex: Python (modul re), JavaScript (RegExp), Java (java.util.regex), Go (regexp/RE2), Ruby, PHP (preg_*), .NET, dan banyak lagi.
Regex adalah alat bermata dua: sangat kuat tetapi juga sumber kerentanan. ReDoS (Regular Expression Denial of Service) adalah jenis serangan di mana pola regex yang ditulis dengan buruk dapat menyebabkan waktu eksekusi eksponensial dengan input tertentu yang berbahaya. Mesin RE2 Google (digunakan di Go) secara khusus dirancang untuk menjamin waktu eksekusi linier, menghilangkan kemungkinan ReDoS dengan mengorbankan tidak mendukung backreference. OWASP menyertakan ReDoS dalam daftar risiko keamanan di aplikasi web.