Contekan Regex
BaruReferensi token dan flag ekspresi reguler yang dapat dicari.
Live regex tester
Type a pattern and a test string — matches highlight instantly, with every capture group broken out below.
Common regex patterns
Battle-tested patterns — load one into the tester to see it run, or copy it straight out.
[\w.+-]+@[\w-]+\.[\w.-]+ https?:\/\/[^\s]+ \(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4} (\d{4})-(\d{2})-(\d{2}) ([01]?\d|2[0-3]):[0-5]\d \b(?:\d{1,3}\.){3}\d{1,3}\b #(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{3})\b [a-z0-9]+(?:-[a-z0-9]+)* -?\d+ (?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,} \b(\w+)\s+\1\b [ \t]+$ Regex cheat sheet
Every token, grouped with a quick example. Search by symbol or keyword; click any token to copy it.
No tokens match your search.
Regex flavors: JavaScript, Python, Java, PCRE & grep
The tester above runs JavaScript regex. Most syntax is shared — here's what differs between engines.
| Feature | JavaScript | Python (re) | Java | PCRE / grep |
|---|---|---|---|---|
| Named group | (?<name>…) | (?P<name>…) | (?<name>…) | (?P<name>…) |
| Dotall (. matches \n) | s flag | re.DOTALL / (?s) | Pattern.DOTALL | (?s) |
| Ignore case | i flag | re.IGNORECASE / (?i) | (?i) flag | (?i) / grep -i |
| Lookbehind | (?<=…) ES2018+ | Supported | Supported | grep -P only |
| Backslash in source | /\d/ literal | r"\d" raw string | "\\d" doubled | \d |
| Find every match | str.matchAll(/…/g) | re.findall() | Matcher.find() | grep -o |
| POSIX class [[:digit:]] | use \d instead | use \d instead | supported | supported |
Runs entirely in your browser. Nothing is uploaded.
Regex cheat sheet dengan contoh — dan penguji langsung
Regex cheat sheet ini menempatkan setiap token regular expression hanya satu pencarian jauhnya — dan memasangkannya dengan penguji langsung agar Anda bisa mencoba sebuah pola begitu Anda mencarinya. Ketik pola, pilih flag Anda, tempel string uji, dan kecocokannya langsung tersorot sementara setiap capture group diuraikan di bawahnya.
Tidak ada yang perlu diinstal dan tidak ada akun yang perlu dibuat: seluruh referensi regular expression ini berjalan di browser Anda, sehingga teks yang Anda uji tidak pernah diunggah. Tanpa iklan, tanpa dinding login, tanpa batas ukuran untuk string uji Anda.
Setiap token regex, dikelompokkan dengan contoh
Referensi ini mencakup sintaks yang benar-benar Anda pakai: character class (\d, \w, \s dan set kustom seperti [a-z]), anchor dan boundary (^, $, \b), quantifier (*, +, ?, {n,m} dan bentuk lazy-nya), group dan alternation, lookahead dan lookbehind, flag g i m s u y, dan escape yang Anda butuhkan untuk titik dan garis miring literal.
Setiap entri membawa contoh singkat dan konkret — \bcat\b cocok dengan kata 'cat' tetapi bukan 'category' — sehingga maknanya melekat. Cari token regex berdasarkan simbol atau kata kunci dan klik salah satu untuk menyalinnya.
Uji pola Anda saat Anda membangunnya
Cheat sheet statis tidak bisa memberi tahu Anda apakah pola Anda benar-benar bekerja. Regex tester bawaan mengompilasi ekspresi Anda secara langsung, menyorot setiap kecocokan dalam teks sampel, dan mendaftar capture group bernomor dan bernama untuk masing-masing.
Aktifkan flag global, case-insensitive, multiline, dotall, Unicode, dan sticky lalu lihat hasilnya berubah. Jika sebuah pola tidak valid, Anda mendapat pesan error dalam bahasa yang jelas alih-alih kegagalan diam-diam — dan melihat sebuah pola cocok secara real time adalah cara tercepat untuk belajar regex.
Pola regex umum, siap disalin
Beberapa pola muncul berulang kali — alamat email, URL, nomor telepon, tanggal ISO, alamat IPv4, warna hex dan pengecekan password kuat. Bagian Common patterns memberi Anda versi teruji dari masing-masing: muat langsung ke penguji untuk melihatnya berjalan pada teks contoh, atau salin ke kode Anda.
Ini adalah titik awal yang pragmatis yang bisa Anda adaptasi, bukan aturan satu-untuk-semua — itulah persisnya mengapa mengujinya pada data Anda sendiri itu penting.
Perbandingan dengan regex101.com dan regexr.com
regex101.com adalah alat regex khusus paling populer di web — dan bukan tanpa alasan. Alat ini mendukung enam flavor regex (PCRE, Python re, Golang, Java, .NET, dan JavaScript), menampilkan panel penjelasan token demi token, dan melacak riwayat kecocokan. Jika Anda men-debug pola produksi yang kompleks atau perlu memverifikasi bahwa sebuah pola berperilaku identik di PHP dan Python, regex101 adalah alat yang tepat untuk tugas itu. regexr.com menawarkan pengalaman serupa dengan pustaka pola komunitas publik.
Halaman UtiloKit ini berada di titik alur kerja yang berbeda. Alat ini menggabungkan tabel referensi token yang bisa dicari dengan penguji langsung di layar yang sama, dioptimalkan untuk situasi umum di mana Anda tahu kira-kira apa yang Anda butuhkan tetapi tidak bisa mengingat sintaks persisnya. Anda mendarat, mencari tokennya, menempel string uji cepat, dan kembali ke editor Anda — tanpa berpindah tab, tanpa akun, tanpa iklan. Bagi developer yang membuka regex101.com puluhan kali sehari hanya untuk mengingat apakah lookbehind memakai (?<=…) atau (?<!…), punya referensi khusus yang bisa dicari itu terukur lebih cepat. Pakai keduanya: regex101 untuk debugging mendalam, halaman ini untuk pencarian cepat.
Flavor regex: JavaScript, Python, Java, PCRE dan grep
Sebagian besar sintaks regex bisa dipindah antar bahasa, tetapi engine berbeda dalam detailnya. Penguji di sini memakai regex JavaScript, flavor yang sama dengan Node.js dan browser. Modul Python re menginginkan raw string seperti r"\d+" dan menamai group (?P<name>…); Java membutuhkan backslash ganda dalam literal string; PCRE (PHP, dan grep -P) paling lengkap fiturnya; dan POSIX grep -E punya keunikan escaping-nya sendiri.
Tabel flavor menyebutkan named group, dotall, case-insensitivity, lookbehind, dan 'find all' di setiap engine, sehingga Anda bisa memindahkan pola python regex cheat sheet ke JavaScript — atau sebaliknya — tanpa kejutan.
Greedy vs lazy, dan gotcha lainnya
Dua hal yang membuat hampir semua orang tersandung. Pertama, quantifier bersifat greedy secara default: .+ mengambil sebanyak mungkin, jadi untuk mencocokkan satu tag HTML biasanya Anda membutuhkan versi lazy .+? sebagai gantinya. Kedua, lupa meng-escape metacharacter — . polos cocok dengan karakter apa pun, sementara \. cocok dengan titik literal, jadi regex harga membutuhkan \d+\.\d{2}.
Simpan cheat sheet ini tetap terbuka saat Anda bekerja dan hal-hal ini berhenti menjadi kejutan.
Privat, instan, dan gratis
Tidak ada yang perlu diinstal dan tidak ada akun yang perlu dibuat. Setiap pencarian, setiap kecocokan, dan setiap penyalinan terjadi secara lokal di browser Anda — pola dan data uji Anda tidak pernah meninggalkan perangkat Anda. Simpan regex cheat sheet ini sebagai bookmark dan gunakan kapan pun Anda perlu mengingat sebuah token atau mengecek kewarasan sebuah pola.
Sejarah singkat regular expression
Regular expression melacak asal-usulnya ke teori bahasa formal. Pada 1951 matematikawan Stephen Kleene menerbitkan karyanya tentang regular set — sebuah kelas bahasa yang bisa dikenali oleh mesin finite-state — dan notasi aljabar yang dipakainya untuk mendeskripsikannya menjadi apa yang kini kita sebut regular expression. Teorema Kleene menetapkan kesetaraan antara bahasa reguler dan automata hingga, memberi ilmu komputer salah satu pilar teoretis yang paling bertahan lama.
Teori ini menjadi alat praktis pada 1968 saat Ken Thompson mengimplementasikan sebuah engine regex di dalam editor baris Unix ed, lalu di utilitas pencarian grep, di Bell Labs. Engine Thompson mengompilasi sebuah pola langsung menjadi non-deterministic finite automaton (NFA), yang bisa disimulasikan dalam waktu linear — sebuah terjemahan rekayasa yang bersih dari matematika Kleene. Kata grep sendiri adalah singkatan dari globally search a regular expression and print, dan alat ini dikapalkan bersama setiap sistem Unix, menaruh regex di tangan programmer di seluruh dunia.
Ekosistem Unix kemudian melahirkan standar POSIX, yang mengkodifikasi dua flavor: Basic Regular Expressions (BRE, dipakai secara default di grep dan sed) dan Extended Regular Expressions (ERE, diaktifkan dengan grep -E atau awk). POSIX ERE menambahkan operator +, ?, dan | yang tidak perlu di-escape tetapi sengaja tidak menyertakan lookahead dan backreference. Perluasan yang menentukan datang bersama Perl pada 1980-an: dialek regex Perl menambahkan quantifier non-greedy, lookahead, lookbehind, named group, dan sederet fitur lain. Saat Philip Hazel mengekstrak dialek ini menjadi pustaka C mandiri pada 1997 sebagai PCRE (Perl Compatible Regular Expressions), fitur-fitur itu menjadi portabel — dan hari ini sintaks PCRE adalah yang dimaksud kebanyakan developer saat mereka mengatakan "regex."
Catastrophic backtracking dan serangan ReDoS
Tidak semua pola regex sama amannya untuk dijalankan pada input yang tidak dipercaya. Serangan ReDoS (Regular Expression Denial of Service) mengeksploitasi cara engine berbasis backtracking NFA menjelajahi alternatif pola. Saat sebuah pola berisi quantifier bersarang — contoh klasiknya adalah (a+)+ — engine bisa mencoba secara eksponensial banyak cara berbeda untuk mencocokkan sebuah string sebelum menyimpulkan tidak ada kecocokan. Pada input yang dirancang seperti "aaaaaaaaaaaaaab", pola (a+)+b memicu lebih dari satu juta percobaan backtracking untuk 20 karakter berulang; menggandakan panjang input kira-kira mengkuadratkan jumlah langkah, artinya string yang cukup panjang bisa menghentikan thread server selama detik atau menit hanya untuk satu evaluasi regex.
Insiden nyata membuktikan ini bukan teoretis. Pada Juli 2016 Stack Overflow mengalami pemadaman seluruh situs selama sekitar 34 menit karena sebuah komentar berbahaya berisi string spasi panjang memicu kerentanan ReDoS di regex parser Markdown-nya. Cloudflare mendokumentasikan insiden produksi serupa pada 2019. Struktur pola rentan yang perlu diwaspadai adalah quantifier bersarang ((a*)*, (a+)+), alternation yang tumpang tindih ((a|aa)+), dan kombinasi apa pun di mana dua cabang sebuah group bisa sama-sama mencocokkan karakter yang sama dengan berbagai cara.
Opsi mitigasi termasuk memberlakukan batas panjang input sebelum evaluasi, mengatur timeout pada panggilan regex, dan menulis ulang pola untuk memakai possessive quantifier (a++ di PCRE) atau atomic group ((?>a+)) yang membuang informasi backtracking begitu sub-ekspresi cocok. Solusi paling lengkap untuk konteks kritis keamanan adalah engine RE2 — dikembangkan di Google dan tersedia untuk Go, C++, dan Python — yang mengompilasi pola menjadi DFA yang menjamin waktu linear O(n) dalam panjang input, membuat catastrophic backtracking secara struktural tidak mungkin terjadi. Trade-off-nya adalah RE2 sengaja menolak backreference dan beberapa assertion lookaround, justru fitur yang menyebabkan ledakan eksponensial.
Lookahead, lookbehind, dan non-capturing group
Assertion lookaround memungkinkan Anda mengondisikan sebuah kecocokan pada apa yang mengelilinginya tanpa mengonsumsi karakter di sekitarnya. Positive lookahead (?=…) cocok dengan sebuah posisi hanya saat sub-ekspresi di dalamnya cocok di sebelah kanan — \d+(?= dollars) cocok dengan angka dalam "50 dollars" tetapi tidak menyertakan kata dollars dalam kecocokannya. Pasangannya, negative lookahead (?!…), cocok dengan sebuah posisi hanya saat teks berikutnya tidak cocok — \b(?!un)\w+ cocok dengan kata yang tidak diawali dengan prefiks un. Lookbehind bekerja dengan cara yang sama tetapi melihat ke kiri: positive lookbehind (?<=\$)\d+ cocok dengan digit yang segera didahului tanda dolar, dan negative lookbehind (?<!\d)\d+ cocok dengan angka yang tidak didahului digit lain. Karena lookaround menguji sebuah posisi alih-alih mengonsumsi teks, Anda bisa menumpuk beberapa di titik yang sama dalam string tanpa mengganggu substring yang cocok.
Non-capturing group (?:…) memungkinkan Anda menerapkan quantifier atau alternation ke sebuah sub-ekspresi tanpa membuat slot capture bernomor. Ini penting untuk performa — setiap capturing group mengalokasikan penyimpanan dalam hasil kecocokan, dan dalam loop panas di atas jutaan string biaya itu bertambah. Ini juga mencegah pergeseran penomoran yang tidak disengaja: jika Anda menambahkan (?:https|ftp) ke sebuah pola yang sudah ada, group yang sudah Anda ekstrak tetap mempertahankan posisinya. Non-capturing group adalah praktik terbaik kapan pun Anda perlu mengelompok murni untuk struktur, bukan untuk ekstraksi.
Named capturing group membawa ini lebih jauh dengan memberi setiap group label yang bisa Anda pakai di kode. Sintaks JavaScript dan PCRE adalah (?<name>…), sementara Python memakai (?P<name>…). Pola tanggal seperti (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) memungkinkan Anda menulis match.groups.year alih-alih match[1], membuat maksudnya jelas dan menghilangkan kerapuhan pengindeksan posisional. Named group juga tersedia sebagai named backreference (\k<name> di JavaScript, (?P=name) di Python), yang berguna untuk pola yang perlu memastikan nilai berulang — misalnya mencocokkan tag pembuka HTML dan memverifikasi tag penutupnya membawa nama elemen yang sama.
Flavor regex dan perbedaan lintas bahasa
Set token inti — character class, quantifier, anchor, group — secara luas konsisten di berbagai bahasa, tetapi perbedaan yang berarti terakumulasi di sisi-sisinya. JavaScript dikapalkan tanpa dukungan lookbehind hingga ES2018, artinya kode polyfill lama sering mengakalinya; flag u mengaktifkan pencocokan code-point Unicode yang tepat (memperbaiki . untuk karakter astral-plane seperti emoji), flag s (dotAll) membuat . cocok dengan newline, dan named group lewat (?<name>…) juga hadir di ES2018. JavaScript tidak punya objek pola terkompilasi bawaan: instance RegExp dikompilasi saat konstruksi, jadi membuat literal yang sama di dalam loop mengompilasinya ulang setiap iterasi — sebuah kesalahan performa yang umum. Modul re milik Python secara dekat mengikuti sintaks PCRE tetapi memakai (?P<name>…) untuk named group, (?P=name) untuk named backreference, dan flag re.VERBOSE (re.X) yang menghapus whitespace yang tidak di-escape dari pola dan mengizinkan komentar # inline — sangat berharga untuk mendokumentasikan pola yang kompleks. Selalu kirim pola sebagai raw string (r"\d+") untuk menghindari Python menafsirkan backslash sebelum Python melihatnya.
Paket java.util.regex milik Java mengharuskan Anda menggandakan setiap backslash dalam literal string karena \ adalah karakter escape string milik Java: regex \d+ harus ditulis "\\d+" dalam kode sumber. Flag diterapkan baik lewat konstanta konstruktor (Pattern.CASE_INSENSITIVE, Pattern.DOTALL) atau inline sebagai (?i) di dalam pola. Pra-kompilasi dengan Pattern.compile() penting untuk kode produksi karena JVM tidak meng-cache pola secara otomatis. .NET menawarkan flavor bawaan paling kaya fitur: mendukung atomic group lewat (?>…), possessive quantifier, dan secara unik mendukung balancing group — sebuah ekstensi sintaks ((?<open-close>)) yang bisa melacak kedalaman nesting, memungkinkan satu regex .NET mencocokkan tanda kurung yang seimbang, sesuatu yang secara ketat berada di luar kemampuan bahasa reguler. Paket regexp milik Go memakai engine RE2 secara sengaja: backreference dan lookahead ditolak saat kompilasi, dan kategori Unicode tersedia lewat \p{L} (huruf Unicode apa pun). Trade-off-nya adalah keamanan: regex Go dijamin O(n) dan tidak bisa dibuat backtrack secara katastrofik.
POSIX ERE — flavor yang dipakai grep -E, awk, dan banyak alat command-line Unix — sepenuhnya tidak punya shorthand class \d, \w, dan \s; Anda harus menulis [0-9] dan [a-zA-Z0-9_] sebagai gantinya. Tidak ada lookahead, tidak ada non-capturing group, tidak ada backreference di ERE (BRE menambahkan \1 tetapi dengan aturan escaping berbeda), dan alternation dengan | tidak butuh escaping. Saat memindahkan pola JavaScript atau Python ke skrip shell, umum ditemukan bahwa setengah tokennya secara diam-diam berarti sesuatu yang berbeda — atau sekadar tidak didukung. Tabel flavor di halaman ini menangkap perbedaan paling berdampak sehingga Anda bisa menerjemahkan pola tanpa kejutan.
Frequently asked questions
Apa itu regular expression, dengan contoh?
Regular expression (regex) adalah pola ringkas yang mendeskripsikan sekumpulan string, dipakai untuk mencari, mencocokkan, dan mengganti teks. Misalnya, pola \d{3}-\d{4} cocok dengan fragmen nomor telepon seperti 555-1234, karena \d berarti 'sebuah digit' dan {3} berarti 'tepat tiga di antaranya'. Regex menggerakkan find-and-replace, validasi formulir, dan parsing log di hampir semua bahasa pemrograman dan editor kode. Penguji langsung di bagian atas halaman ini memungkinkan Anda mencoba pola apa pun secara instan.
Apa saja token regex dasar?
Blok bangunannya adalah: . (karakter apa pun kecuali newline), \d (sebuah digit), \w (karakter kata — huruf, digit, atau underscore), \s (whitespace), anchor ^ (awal) dan $ (akhir), serta quantifier * (nol atau lebih), + (satu atau lebih), dan ? (opsional). Jadi \w+ cocok dengan seluruh kata dan \d+ cocok dengan seluruh angka seperti 2024. Gabungkan mereka — ^\d+$ cocok dengan baris yang hanya berisi digit. Setiap token di cheat sheet ini menyertakan contoh yang bisa disalin.
Apa arti \d, \w, dan \s?
\d cocok dengan digit apa pun 0–9; \w cocok dengan karakter kata (a–z, A–Z, 0–9, atau _); \s cocok dengan whitespace (spasi, tab, atau newline). Versi huruf besarnya adalah negasinya: \D adalah non-digit, \W adalah karakter non-kata, dan \S adalah non-spasi. Misalnya, dalam teks 'a5 b', \d cocok dengan 5, \w cocok dengan a, 5, dan b, dan \s cocok dengan spasi di antara mereka. Ketiga class shorthand ini mencakup sebagian besar pola regex sehari-hari.
Apa itu anchor regex?
Anchor cocok dengan sebuah posisi, bukan sebuah karakter. ^ cocok dengan awal string (atau setiap baris dengan flag m), $ cocok dengan akhir, \b cocok dengan word boundary, dan \B cocok dengan non-boundary. Misalnya, ^\d+$ cocok dengan string yang hanya berisi digit, dan \bcat\b cocok dengan kata 'cat' tetapi bukan 'cat' di dalam 'category'. Anchor sering disalahpahami sebagai pencocok karakter — mereka cocok dengan posisi dalam teks, bukan karakter tertentu.
Apa itu quantifier dalam regex?
Quantifier menyatakan berapa kali token sebelumnya boleh berulang: * adalah nol atau lebih, + adalah satu atau lebih, ? adalah nol atau satu (opsional), {n} adalah tepat n, {n,} adalah n atau lebih, dan {n,m} adalah antara n dan m. Mereka bersifat greedy secara default (cocok sebanyak mungkin); tambahkan ? untuk membuatnya lazy. Misalnya \d{1,3} cocok dengan 1 sampai 3 digit, dan .+? yang lazy cocok sesedikit mungkin. Quantifier lazy penting saat mencocokkan tag HTML atau string berkutip.
Apa itu group dan capture group?
Tanda kurung (…) membuat capturing group yang bisa Anda ekstrak atau pakai ulang — (\d{4})-(\d{2}) menangkap tahun di group 1 dan bulan di group 2 dari '2024-06'. Pakai (?:…) untuk non-capturing group saat Anda hanya perlu mengelompok untuk sebuah quantifier, dan (?<name>…) untuk named group seperti (?<year>\d{4}). Backreference seperti \1 mencocokkan ulang apa yang ditangkap group 1, jadi (\w)\1 menemukan huruf ganda — 'll' pada 'hello'.
Apa itu lookahead dan lookbehind?
Lookaround memastikan teks ada (atau tidak ada) di sebelah kecocokan Anda tanpa mengonsumsinya. (?=…) adalah positive lookahead, (?!…) adalah negative lookahead, (?<=…) adalah positive lookbehind, dan (?<!…) adalah negative lookbehind. Misalnya, \d+(?=px) cocok dengan 5 pada '5px' tetapi menyisihkan 'px', dan (?<=\$)\d+ cocok dengan 9 pada '$9' dengan mensyaratkan tanda dolar mendahuluinya. Lookaround adalah salah satu fitur yang membedakan engine regex modern dari POSIX grep.
Apa itu flag regex?
Flag mengubah cara seluruh pola diterapkan: g (global) menemukan setiap kecocokan, i membuatnya case-insensitive, m (multiline) membuat ^ dan $ cocok dengan setiap baris, s (dotall) memungkinkan . cocok dengan newline, u mengaktifkan Unicode penuh, dan y (sticky) menambatkan pencocokan pada posisi tetap. Di JavaScript Anda menambahkannya setelah garis miring penutup, jadi /cat/gi cocok dengan 'Cat' dan 'CAT' di mana pun dalam teks. Penguji di halaman ini punya tombol toggle untuk setiap flag sehingga Anda bisa melihat efeknya secara langsung.
Bagaimana cara menulis regex untuk email, nomor telepon, atau URL?
Pola awal yang praktis: email — [\w.+-]+@[\w-]+\.[\w.-]+ ; URL — https?:\/\/[^\s]+ ; telepon AS — \(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}, yang cocok baik dengan 555-123-4567 maupun (555) 123 4567. Ini pragmatis, bukan lengkap — standar email resmi jauh lebih kompleks — jadi selalu uji pada data nyata Anda dengan penguji langsung di atas, di mana masing-masing hanya satu klik di daftar Common patterns.
Bagaimana cara meng-escape karakter khusus dalam regex?
Taruh garis miring terbalik sebelum metacharacter apa pun untuk mencocokkannya secara literal. Karakter yang biasanya perlu di-escape adalah . ^ $ * + ? ( ) [ ] { } | \ dan /. Misalnya \. cocok dengan titik literal dan \$ cocok dengan tanda dolar, jadi \d+\.\d{2} cocok dengan harga seperti 19.99. Di dalam character class sebagian besar karakter ini kehilangan makna khususnya, jadi [.] juga cocok dengan titik literal tanpa perlu di-escape.
Apakah flavor regex berbeda antara JavaScript, Python, dan Java?
Sintaks intinya sama, tetapi detailnya berbeda. JavaScript menamai group (?<name>…) sementara Python memakai (?P<name>…); Python memakai raw string seperti r"\d+" dan Java butuh backslash ganda dalam literal string ("\\d+"). Dotall adalah flag s di JS, re.DOTALL di Python, dan Pattern.DOTALL di Java. Tabel flavor di halaman ini merangkum perbedaan untuk Python, Java, PCRE, dan grep sehingga Anda bisa memindahkan pola antar bahasa dengan percaya diri.
Apa itu regular expression di Python?
Di Python, regular expression berada di modul bawaan re. Anda biasanya menulis pola sebagai raw string dan memanggil fungsi seperti re.search, re.findall, atau re.sub — misalnya re.findall(r"\d+", "a1 b22") mengembalikan ['1', '22']. Named group memakai (?P<name>…) dan Anda membacanya dengan match.group('name'). Referensi token di halaman ini berlaku langsung untuk regex Python; hanya API sekitarnya dan beberapa nama flag yang berbeda dari JavaScript.
Bagaimana cara menguji sebuah regex?
Pakai penguji langsung di bagian atas halaman ini: ketik pola Anda di antara garis miring, aktifkan flag yang Anda butuhkan, dan tempel string uji. Kecocokan tersorot secara real time, setiap capture group bernomor dan bernama diuraikan di bawah, dan pola yang tidak valid menampilkan pesan error inline alih-alih gagal secara diam-diam — semuanya berjalan lokal di browser Anda, sehingga apa pun yang Anda tempel tidak diunggah. Alat seperti regex101.com dan regexr.com bekerja serupa; alat ini menggabungkan referensi dan penguji dalam satu halaman.
Bagaimana ini dibandingkan dengan regex101.com dan regexr.com?
regex101.com adalah standar industri untuk debugging regex mendalam — mendukung banyak flavor (PCRE, Python, Java, .NET, Golang) dan memberi penjelasan detail setiap token dalam pola Anda. regexr.com menawarkan pengalaman serupa dengan pustaka pola komunitas. Keduanya adalah alat khusus yang sangat baik. Regex cheat sheet UtiloKit ini berbeda: memasangkan tabel referensi token dengan penguji langsung dasar di halaman yang sama, sehingga Anda bisa mencari sesuatu dan memverifikasinya dalam hitungan detik tanpa berpindah tab. Untuk pekerjaan regex produksi yang kompleks, perbandingan flavor dan debugger detail regex101.com sulit ditandingi; untuk pencarian cepat selama pengembangan, halaman referensi ini lebih cepat dimuat dan tidak butuh navigasi.
Mengapa disebut regular expression?
Namanya berasal dari teori bahasa formal. Pada 1950-an matematikawan Stephen Kleene mendeskripsikan 'regular set' — bahasa yang bisa dikenali oleh mesin finite-state sederhana — dan notasi yang dipakainya untuk itu menjadi dikenal sebagai regular expression. Engine regex modern menambahkan fitur seperti backreference dan lookaround yang melampaui bahasa yang secara ketat 'reguler', tetapi nama historisnya tetap melekat.
Related tools
Lihat semua perkakasEnkode / Dekode Entitas HTML
Escape dan unescape entitas HTML, dengan opsi enkode numerik.
Pembuat Ekspresi Cron
Jelaskan jadwal cron dalam bahasa sederhana dan pratinjau waktu jalan berikutnya.
Pengecil HTML
Perkecil HTML dengan menghapus komentar dan meringkas spasi kosong.
Pengecil CSS
Perkecil CSS dengan membuang komentar dan spasi kosong yang tidak perlu.
Escape / Unescape JSON
Escape teks mentah menjadi string aman-JSON dan unescape kembali.
Kode Status HTTP
Referensi kode status HTTP yang dapat dicari dengan arti dalam bahasa sederhana.