Penguji regex

Tulis pola dan lihat setiap kecocokan disorot dalam konteks — tanpa tombol, dan mesinnya adalah RegExp JavaScript bawaan peramban.

Cara menggunakan

  1. Ketik pola tanpa garis miring dan aktifkan flag yang perlu: kecocokan diperbarui saat Anda mengetik, tidak ada tombol yang harus ditekan.
  2. Tempel teks uji. Setiap kecocokan disorot di panel hasil, dan masing-masing didaftar dengan posisi, teks, serta grup tangkapannya.
  3. Salin semua nilai yang cocok sekaligus, atau unduh sebagai berkas teks — satu kecocokan per baris.

Contoh

Pola dan teks

(\w+)@(\w+)\.(\w+)

Hubungi budi@example.com atau siti@example.org untuk detail.

Kecocokan

Kecocokan: 2
#1 [8–24] budi@example.com
   1: budi  2: example  3: com
#2 [30–46] siti@example.org
   1: siti  2: example  3: org

Baris pertama adalah pola (tanpa garis miring), sisanya teks uji. Rentangnya adalah offset 0-based, end-exclusive ke dalam teks — angka yang sama dengan match.index di JavaScript. Pencocokan global selalu aktif, jadi semua kemunculan ditemukan meski tidak ada tombol g.

Aturan, batasan, dan masalah yang diketahui

  • Mesinnya adalah RegExp JavaScript bawaan peramban: tanpa varian PCRE, Python, Go, atau RE2, dan tanpa pemilih varian. \A, \z, serta flag sebaris seperti (?i) tidak didukung.
  • Pencocokan global selalu aktif; flag yang tersedia hanya i, m, s, dan u. y (sticky), d (indeks), dan v (himpunan Unicode) tidak disediakan.
  • Garis miring /…/ hanya hiasan: / di dalam pola tidak perlu di-escape di sini, berbeda dengan literal JavaScript. Bacaan flag di sebelahnya adalah string persis yang dapat dipakai ulang di kode.
  • Galat sintaks menampilkan pesan bawaan peramban (dalam bahasa Inggris) setelah awalan yang sudah diterjemahkan; redaksinya berbeda antarperamban.
  • Teks uji kosong tidak menghasilkan apa pun — tidak ada baris untuk diuji, jadi pola seperti ^$ tidak dapat diverifikasi di sini.
  • Hingga 2000 kecocokan dikumpulkan (hitungannya lalu terbaca 2000+) dan daftar merender 200 pertama. Kedua batas diumumkan, bukan dipotong diam-diam.
  • Teks di atas 100.000 karakter tetap diperbarui saat mengetik, dengan jeda lebih panjang sebelum hasil muncul.
  • Backtracking katastrofik dapat membekukan tab: regex JavaScript berjalan sinkron dan tidak dapat dihentikan, jadi tidak ada batas waktu. Jangan menempel pola atau teks raksasa yang tidak tepercaya.
  • \w, \b, dan \d hanya ASCII meski dengan u — cocokkan huruf non-Latin dengan \p{L} dan flag u. Tanpa u, \p{L} bukan galat: ia diam-diam merosot menjadi pencocokan literal.
  • i memakai case folding sederhana Unicode, bukan aturan lokal: huruf Turki İ dan i tidak saling cocok, dan ß tidak dilipat menjadi SS.
  • Rentangnya offset UTF-16 0-based, end-exclusive, jadi satu emoji dihitung dua. Grup yang tidak berpartisipasi ditampilkan sebagai —; grup yang cocok dengan string kosong ditampilkan kosong.
  • Kecocokan panjang nol (\b, a*, (?=x)) ditampilkan sebagai penanda tipis dan rentangnya terbaca n–n.
  • Salin dan unduh hanya memuat nilai yang cocok, satu per baris, tanpa nomor, rentang, atau grup. Kecocokan yang berisi baris baru karenanya membentang beberapa baris.
  • Tidak ada pratinjau substitusi, tidak ada generator kode, tidak ada permalink, dan tidak ada pola tersimpan: pola tidak pernah keluar dari kotak masukan dan tidak pernah masuk ke URL.

Setelah polanya berjalan, ini langkah berikutnya yang biasa.