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?
17
Bagaimana dengan kregexpeditor
sumber
Coba txt2regex dan lihat apakah itu membantu. Saya tidak pernah menggunakannya dengan serius, tetapi rasanya keren ketika saya mencobanya.
sumber
Ada kodos jika Anda lebih suka aplikasi mandiri. Akhir-akhir ini saya telah menggunakan visualisator regex online seperti http://debuggex.com atau http://www.regexper.com/
sumber
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:
... lihat sisanya untuk lebih. Tangkapan layar:
sumber
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:
sumber
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,
sed
hanya 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
sed
adalah perintah debugging -nyal
, yang merupakan dump baris sederhana yang menunjukkan ruang pola dengan baris baru yang disematkan ditampilkan\n
, dll.Masalah dengan
sed
bukan 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 menanganised
cukup 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
sed
parser untuk mengurai sayased
kode 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 dipilihsed
) ... ... penyorotan sintaks yang mereka tawarkan tidak banyak membantu saya . Editor dengan pencocokan braket yang baik cukup berguna (saya menggunakan emacs) ..sumber
emacs re-builder
dan itu tidak membantu saya sama sekali ... tidak melewati hari 1 ... Semua itu menunjukkan kepada saya bahwa diemacs
dalamnya perlu backslash ekstra atau dua, karena bagaimana emacs mengevaluasi sesuatu ... Anda dapat membuat tes yang sama dengan mengevaluasi regex Anda melaluiC-x C-e
.. Itu tidak menulis ekspresi untuk Anda; Anda masih perlu menulisnya ... Dan kemudian adaemacs
sistem 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.