Perangkat lunak untuk membangun ekspresi reguler secara visual?

17

Saya sering perlu membuat ekspresi reguler untuk digunakan dalam skrip (kebanyakan ketika digunakan sed), namun, saya menemukan, kadang-kadang ekspresi reguler menjadi sangat rumit dan sulit bagi saya untuk dimengerti dan diedit. Apakah ada perangkat lunak yang memungkinkan seseorang membuat kode secara visual untuk ekspresi reguler, yang kemudian dapat saya salin dan tempel ke dalam skrip?

Desa
sumber

Jawaban:

9

Bagaimana dengan Visual Regexp ?

http://laurent.riesterer.free.fr/regexp/screenshot2.png

Johan
sumber
Apa yang kamu gunakan?
enzotib
1
Bukan saya, itu adalah tautan langsung dari beranda proyek. Tapi sepertinya fvwm yang populer di akhir 1990: s. Jangan ragu untuk membandingkan dengan sesuatu seperti ini fvwm.org/screenshots/desktops/Helmuth_Schmelzer-1366x768/… , saya tidak tahu negara bagian apa fvwm hari ini (tetapi dulu sangat stabil sebelum kde dan gnome ditemukan).
Johan
1
Dekorasi jendela langsung keluar dari Motif, yang sejak itu porting / disalin di manajer jendela lainnya. en.wikipedia.org/wiki/Motif_Window_Manager
Arcege
5

Bagaimana dengan kregexpeditor

Alexander
sumber
4

Coba txt2regex dan lihat apakah itu membantu. Saya tidak pernah menggunakannya dengan serius, tetapi rasanya keren ketika saya mencobanya.

jw013
sumber
2

Tidak persis apa yang diminta OP - tapi saya pikir itu relevan, jadi saya akan posting silang Rekomendasi untuk editor Regex? # 549107 - Tanyakan Ubuntu :

Inilah upaya saya di alat GUI regex visual, yang disebut visRegexTester.py:

Ini memiliki "pratinjau langsung" ("Auto jalankan kembali") jika Anda mengetik dan mengubah bidang "regex". Kalau tidak, hanya file tunggal itu; ada komentar README di awal - berikut ini cuplikannya:

visRegexTester adalah aplikasi GUI Python / Tkinter kecil untuk membantu penulisan ekspresi reguler; diuji dengan Python 2.7 dan 3.2. Bahkan, itu hanyalah sebuah antarmuka untuk program baris perintah lainnya: ia mengeksploitasi fakta bahwa banyak program Unix / GNU / Linux digunakan sebagai prosesor regex di terminal (misalnya grep, sed, perl), memiliki sintaks baris perintah yang sama dalam tiga bagian:

(PROGRAM --ARGS) ('REGEX') (FILENAME)

... lihat sisanya untuk lebih. Tangkapan layar:

visRegexTester_01.png

sdaau
sumber
1

Ya, text2re.com harusnya dekat dengan apa yang Anda cari. Teks sumber yang diberikan, Anda dapat memilih untuk menghasilkan regex yang cocok dengan teks mana pun yang diberikan. Alat ini menghasilkan kode untuk beberapa bahasa juga.

UI pembuat regex (langkah 2 di halaman) sedikit sulit dipelajari; perhatikan bahwa mengarahkan kursor ke salah satu opsi menjelaskan objek yang cocok dengan Anda:

UI alat regex

tcdyl
sumber
0

Saya tidak yakin apa yang Anda maksud dengan "membuat kode secara visual" (maksud Anda alat GUI?). Jika Anda seperti saya, saya merasa tidak mungkin untuk bekerja dengan ekspresi reguler yang kompleks, kecuali jika saya menaruhnya secara terstruktur, sehingga saya bisa mendapatkan representasi visual yang lebih baik dari logika.

Sungguh, sedhanya bahasa scripting, dan dapat ditata seperti bahasa lain, yaitu. dengan satu perintah per baris. Berikut ini adalah contoh khas dari apa yang saya maksud: Reg sed sed menunjukkan tata letak terstruktur .

Fitur yang sangat berguna sedadalah perintah debugging -nya l, yang merupakan dump baris sederhana yang menunjukkan ruang pola dengan baris baru yang disematkan ditampilkan \n, dll.

Masalah dengan sedbukan hanya ekspresi reguler. Ini memiliki seperangkat perintah cryptic yang funky untuk pengulangan dan pengujian kondisi; ini membutuhkan waktu untuk membiasakan diri ... Alat terbaik yang pernah saya temukan untuk membantu saya dalam menangani sedcukup sederhana: Saya membaca manual secara rinci .. Dari itu, itu hanya sebuah proses memulai dari yang kecil dan mendapatkan hal-hal sederhana bekerja; kemudian membangun hal-hal yang lebih besar untuk mendapatkan pengalaman ..

Perl regex memiliki beberapa fitur yang berguna untuk membantu menyusun pola yang kompleks; misalnya. kemampuan untuk mengabaikan spasi dalam ekspresi Anda .. (Sebagai tantangan, dan untuk expereince faktor, saya menulis sebuah sedparser untuk mengurai saya sedkode untuk memungkinkan spasi seperti ... PS Saya tidak membutuhkannya sekarang,. karena pengalaman :) Sebenarnya hanya meletakkan perintah, satu per baris, hampir sama baiknya dengan fitur perl.

Alat terbaik untuk membantu Anda adalah: pengalaman . misalnya. Mengatasi pertanyaan regex di situs ini adalah cara yang bagus untuk mendapatkan pengalaman itu ... Saya merasa alat GUI tidak banyak membantu, karena mereka menghambat pengalaman ...

Singkatnya, alat bantu terbaik adalah pengalaman dan tata letak terstruktur , dan membaca manual (secara rinci).

Saya sudah sering menggunakan kata "expereince" .. dengan itu saya maksudkan bahwa tindakan mempersiapkan ekspresi reguler (dan dalam kasus sed, setiap logika perulangan, dll.) Adalah faktor kunci .. jenis "Regex-Builder" alat; jangan menulis regex untuk Anda; mereka hanya mengujinya, dan mereka tentu saja tidak akan menangani logika program sed , karena itu bukan regex .. (dan Anda secara khusus dipilih sed) ... ... penyorotan sintaks yang mereka tawarkan tidak banyak membantu saya . Editor dengan pencocokan braket yang baik cukup berguna (saya menggunakan emacs) ..

Peter.O
sumber
Saya pikir tidak ada salahnya jika Anda memiliki alat untuk pengujian dan eksperimen yang mudah. (emacs re-builder)
favadi
1
Saya telah menggunakan emacs re-builderdan itu tidak membantu saya sama sekali ... tidak melewati hari 1 ... Semua itu menunjukkan kepada saya bahwa di emacsdalamnya perlu backslash ekstra atau dua, karena bagaimana emacs mengevaluasi sesuatu ... Anda dapat membuat tes yang sama dengan mengevaluasi regex Anda melalui C-x C-e.. Itu tidak menulis ekspresi untuk Anda; Anda masih perlu menulisnya ... Dan kemudian ada emacssistem penulisan regex dengan menggunakan kata-kata deskriptif .. (Saya pikir sistem verbose / seperti bahasa Inggris mati bersama COBOL .. tetapi bahkan COBOL tidak sepenuhnya mati, belum) .. dan hal, Anda masih perlu menulisnya.
Peter.O