Lompat ke konten
Aback Tools Logo

Penyederhana Regex

Sederhanakan ekspresi reguler yang kompleks sambil mempertahankan perilaku pencocokannya. Secara otomatis menghapus grup yang berlebihan, menyederhanakan kelas karakter ([0-9] hingga \\d, [a-zA-Z0-9_] hingga \\w), memadatkan bilangan verbose, dan memfaktorkan awalan pergantian umum. Dapatkan laporan penyederhanaan langkah demi langkah dengan penyimpanan karakter, analisis pola komprehensif, dan pengujian perilaku bawaan untuk memverifikasi pola yang disederhanakan masih berfungsi dengan benar. Semua pemrosesan bersifat lokal dan pribadi.

Regex Simplifier

Simplify complex regular expressions while preserving behavior. Automatically removes redundant groups, simplifies character classes and quantifiers, and factors common prefixes in alternations. Test your simplified regex against sample strings to verify behavior is preserved.

Flags:/g/

Presets:

Enter a regex pattern and click Simplify to reduce its complexity. Choose from the preset examples above to get started.

Fitur

Alat optimasi dan analisis regex yang kuat

  • Penyederhanaan Cerdas: Secara otomatis menghapus grup non-penangkap dan penangkap yang berlebihan, menyederhanakan kelas karakter seperti [0-9] menjadi \\d dan [a-zA-Z0-9_] menjadi \\w, memadatkan bilangan verbose (→ dihapus, →?, → *, → +), dan memfaktorkan awalan umum secara bergantian.
  • Pengujian Pelestarian Perilaku: Uji regex asli dan yang disederhanakan terhadap string input apa pun untuk memverifikasi bahwa penyederhanaan tidak mengubah perilaku pola. Hasil pencocokan berdampingan dengan indikator lulus/gagal yang jelas memastikan ekspresi reguler Anda yang disederhanakan masih berfungsi dengan benar.
  • Laporan Langkah-demi-Langkah Terperinci: Setiap penyederhanaan dicatat sebagai langkah individual dengan pola sebelum/sesudah dan penyimpanan karakter. Lihat secara pasti apa yang berubah, mengapa berubah, dan berapa banyak karakter yang disimpan di setiap langkah. Sempurna untuk jalur pembelajaran dan audit.
  • Analisis & Peringatan Regex: Dapatkan analisis pola komprehensif dengan jumlah grup, penilaian kompleksitas (0-100), deteksi pergantian, identifikasi penelusuran, dan deskripsi pola yang dapat dibaca manusia. Peringatan menandai pola kompleksitas tinggi, referensi balik, dan potensi dampak perilaku.

Kasus Penggunaan

Bagaimana pengembang dan analis menggunakan penyederhanaan regex

Apa itu Penyederhanaan Regex?

Penyederhanaan regex adalah proses mereduksi ekspresi reguler menjadi bentuk yang lebih pendek dan efisien sambil mempertahankan perilaku pencocokan persisnya. Penyederhanaan umum termasuk mengganti kelas karakter seperti [0-9] dengan kelas steno seperti \\d, menghapus bilangan yang berlebihan seperti, menghilangkan grup non-penangkap yang tidak perlu (?:...), dan mengubah pergantian karakter tunggal menjadi kelas karakter.

Kelas Karakter Singkatan

Mesin regex menyediakan kelas singkatan untuk grup karakter umum: \\d cocok dengan digit apa pun (sama seperti [0-9]), \\w cocok dengan karakter kata ([a-zA-Z0-9_]), dan \\s cocok dengan spasi ([\\t\ \\r\\f\\v ]). Rekan yang dinegasikannya (\\D, \\W, \\S) cocok dengan semuanya kecuali karakter tersebut. Penggunaan singkatan ini membuat pola menjadi lebih pendek dan seringkali lebih efisien.

Notasi Pembilang

Quantifier mengontrol berapa kali elemen pola harus cocok. Meskipun regex mendukung bilangan numerik eksplisit seperti,,, dan, hal ini biasanya dapat disederhanakan: berlebihan dan dapat dihapus, setara dengan?, setara dengan *, dan setara dengan +. Menggunakan bilangan singkatan membuat pola lebih bersih dan lebih mudah dibaca.

Pelestarian Perilaku

Tidak semua penyederhanaan regex mempertahankan perilaku dalam semua konteks. Pola dengan referensi ke belakang, pernyataan melihat ke depan/ke belakang, atau pergantian yang rumit mungkin memerlukan penanganan yang hati-hati. Penyederhanaan mengambil pendekatan konservatif, menghindari transformasi yang dapat mengubah perilaku, dan memberikan peringatan ketika pola mengandung fitur yang membatasi penyederhanaan. Selalu uji ekspresi reguler Anda yang disederhanakan dengan masukan aktual untuk memverifikasi perilaku.

Pertanyaan yang Sering Diajukan

Penyederhanaan menerapkan serangkaian aturan transformasi untuk mengurangi panjang dan kompleksitas pola ekspresi reguler Anda sambil mempertahankan perilaku pencocokannya. Ini memindai pola untuk konstruksi yang berlebihan seperti grup non-penangkap yang tidak perlu, bilangan verbose, kelas karakter yang dapat diganti dengan steno, dan pergantian karakter tunggal yang dapat menjadi kelas karakter. Setiap transformasi dicatat sebagai langkah terpisah.

Penyederhanaan ini menggunakan pendekatan konservatif dan hanya menerapkan transformasi yang setara secara matematis di sebagian besar konteks. Namun, perilaku regex dapat dipengaruhi oleh tanda, referensi balik, dan pernyataan pencarian. Selalu uji ekspresi reguler Anda yang disederhanakan terhadap masukan sebenarnya menggunakan fitur pengujian bawaan untuk memverifikasi bahwa perilaku tersebut dipertahankan.

Penyederhanaan menangani beberapa penggantian kelas karakter umum: [0-9] → \d, [ˆ0-9] → \D, [a-zA-Z0-9_] → \w, [ˆa-zA-Z0-9_] → \W, kelas spasi putih → \s, dan rekannya yang dinegasikan → \S. Kelas karakter tunggal yang membungkus karakter non-khusus juga disederhanakan.

Pembilang numerik disederhanakan menjadi singkatan yang setara: {1} dihilangkan seluruhnya, {0,1} menjadi ?, {0,} menjadi *, dan {1,} menjadi +. Ini selalu merupakan kesetaraan yang menjaga perilaku.

Penyederhanaan menggunakan pendekatan heuristik daripada parser regex lengkap, sehingga pola yang sangat kompleks dengan konstruksi yang sangat bertingkat mungkin tidak sepenuhnya disederhanakan. Skor kompleksitas (0-100) membantu mengidentifikasi pola yang mungkin memerlukan tinjauan manual. Pola yang mendapat skor di atas 60 ditandai dengan peringatan.

Skor kompleksitas (0-100) memperkirakan kompleksitas pola berdasarkan beberapa faktor: panjang pola berkontribusi hingga 30 poin, grup penangkap masing-masing menambahkan 10 poin, grup non-penangkap menambahkan 5 poin, kelas karakter menambahkan 5 poin, operator pergantian masing-masing menambahkan 8 poin, dan pernyataan pencarian masing-masing menambahkan 8 poin.

Ketika grup non-penangkap berisi pergantian karakter tunggal seperti (?:a|b|c), grup tersebut dapat disederhanakan menjadi kelas karakter [abc]. Kedua pola tersebut cocok dengan tepat satu karakter dari himpunan {a, b, c}. Kelas karakter lebih pendek dan umumnya lebih efisien. Transformasi ini hanya berlaku jika semua alternatif berupa karakter non-khusus tunggal.

Ya. Fitur pengujian bawaan memungkinkan Anda memasukkan string pengujian apa pun dan membandingkan hasil pencocokan antara pola asli dan pola yang disederhanakan. Pengujian ini menunjukkan indikator lulus/gagal yang jelas untuk kedua pola, sehingga memudahkan untuk memverifikasi bahwa penyederhanaan tidak mengubah perilaku.

Sangat. Semua pemrosesan regex — penyederhanaan, analisis, dan pengujian — terjadi sepenuhnya di browser Anda menggunakan JavaScript. Pola regex dan string pengujian Anda tidak pernah dikirim ke server mana pun. Tidak diperlukan akun, pendaftaran, atau koneksi internet selain memuat halaman.