Editor teks yang mampu menjalankan Ekspresi Reguler yang kompleks?

10

Saya ingin menemukan editor teks yang mampu berjalan dan terutama menyimpan ekspresi reguler untuk digunakan kembali nanti. Seharusnya juga dapat menjalankannya di beberapa file.

Saya tahu saya bisa mendapatkan semua itu dengan grep, tetapi tidak ada banyak untuk digunakan kembali. Saya bisa mendapatkan beberapa fungsionalitas ekspresi reguler di Gedit dengan plugin, tetapi tidak mendekati kebutuhan saya.

Ada EditPad Pro untuk Windows (berjalan pada anggur) tetapi asli selalu lebih baik :)

Mashimom
sumber

Jawaban:

18

Dua editor open source klasik Unix adalah GNU emacs dan (g) Vim dan keduanya berfungsi dengan baik di Ubuntu. Keduanya memiliki lebih banyak fitur daripada yang dapat Anda pelajari seumur hidup, termasuk apa yang Anda cari. Ada banyak yang lain dua juga, tetapi Anda mungkin juga mulai dengan yang terbaik. (Aku akan berusaha untuk tidak masuk ke mana di antara ini yang lebih baik, karena ini sudah merupakan perang suci epik.)

Omong-omong, sed mungkin alternatif yang lebih baik daripada grep untuk manipulasi RegEx dari commandline, dan Anda dapat menulis dan menyimpan skrip untuk itu. (Tentu saja Anda dapat menggunakan perl, awk, dan python untuk reg ex juga.)

Beberapa inspirasi dari xkcd: http://imgs.xkcd.com/comics/real_programmers.png

luar biasa
sumber
2
Aku benci menjadi lelaki itu, tapi 'juga', bukan 'dua'.
TJ L
Doh! Maaf tentang kesalahan ketik. Jangan khawatir. Saya biasanya pria itu. Saya bermaksud menyebutkan bahwa jika Anda ingin tetap menggunakan gEdit, Anda dapat menginstal plugin Alat Eksternal yang bagus dan menggunakannya untuk menjalankan skrip sed pada buffer.
frabjous
@ tj111 - Jangan pernah meminta maaf karena berorientasi pada detail. Dalam pekerjaan kita, akan mengkhawatirkan jika Anda TIDAK berpikir itu penting. :-)
Scott Smith
15

Geany memiliki serangkaian temuan yang bagus:

geany find

menggantikan:

ganti geany

dan pencarian file:

geany grep

fitur. Itu tidak memiliki kemampuan bawaan untuk menyimpan ekspresi reguler untuk nanti meskipun Anda selalu bisa menyimpannya dalam file teks.

Itu memang memiliki sejarah untuk menemukan / mengganti tetapi ini terbatas pada satu sesi.

dv3500ea
sumber
1
Jauh lebih mudah untuk hanya menggunakan Geany ketika Anda memerlukan editor GUI cepat dengan dukungan regex, daripada harus menggali melalui internet dan halaman manual untuk mempelajari sintaks untuk regex di vi (m)
Alex Marshall
6

Jika Anda hanya ingin menjalankan regex terhadap banyak file, saya pikir sudah waktunya bagi Anda untuk mempelajari seddanawk

maco
sumber
Anda dapat menyimpan dan mengedit skrip dalam file dengan sedatau awkjuga.
pbhj
2

Anda dapat menggunakan kombinasi GEdit dan plugin Advanced find / replace plugin for gedityang dapat Anda temukan di http://code.google.com/p/advanced-find/ .

Dari 2012 ini memiliki fitur bookmark ekspresi sehingga Anda dapat menggunakannya kembali. Juga dapat mencari dan mengganti file yang dibuka, untuk file dalam folder (dengan filter) atau di dalam pilihan teks.

Tentang cara menginstal, Anda dapat mengikuti instruksi di halaman wiki-nya http://code.google.com/p/advanced-find/wiki/Instalation .

Pada dasarnya yang harus Anda lakukan adalah:

  1. Unduh versi yang benar untuk gedit Anda dari http://code.google.com/p/advanced-find/downloads/list .

  2. Dekompreslah.

  3. Jalankan install.sh (tanpa sudo).

  4. Buka preferensi / plug-in dan aktifkan.

Cuplikan layar dialog Cari / Ganti Tingkat Lanjut dibuka

PhoneixS
sumber
1

Saya ingin menambahkan komentar yang menunjuk ke jawaban ini , tetapi karena tampaknya saya tidak memiliki reputasi yang cukup untuk itu, saya akan menduplikasinya di sini sebagai jawaban saya sendiri: RegExr adalah alat terbaik yang pernah saya gunakan untuk manipulasi teks menggunakan ekspresi reguler. Bahkan akan menjelaskan setiap bagian dari regex untuk Anda!

Ini adalah alat online, tetapi ada versi desktop . Ini menggunakan Adobe AIR, yang telah dihentikan untuk Linux, jadi Anda mungkin perlu menginstalnya mengikuti petunjuk langkah demi langkah yang sangat baik ini . Setelah itu, unduh .airfile untuk halaman desktop RexExr yang ditautkan di atas, dan Anda harus dapat membukanya dengan pemasang AIR. Kemudian edit!

waldyrious
sumber
1

Saya sangat terkejut tidak ada yang menyebutkan 'medit' ... search / replace memiliki kotak centang sederhana yang memberitahukan bahwa kriteria yang Anda masukkan adalah ekspresi regex ... dapat sesederhana atau serumit yang Anda suka ..

michaelg
sumber
Selamat datang di AskUbuntu. Akan lebih bermanfaat jika Anda bisa menguraikan jawabannya dengan contoh dan / atau tangkapan layar.
Sri
0

Atom memiliki fungsi ini. Unduh dan instal paket "deb".

Tekan CTRL+ Fdan klik .*tombol untuk masuk ke mode regex.

Atau, Anda dapat menekan CTRL+ ALT+/

Juga di github.

Pertanyaan terkait tentang cara menggunakan regex dalam atom.

Atau Anda bisa menggunakan catdan sed.

Gunakan sed -euntuk hanya mencetak perubahan. Gunakan sed -iuntuk benar-benar mengedit isi file.

Lihat di sini untuk info lebih lanjut.

Anda juga dapat menggunakan egrepuntuk menggunakan ekspresi reguler dengan grep.

Jika Anda hanya perlu menemukan fungsi ganti, geditterima ekspresi reguler jika Anda menekan CTRL+ F.

Anda juga dapat melakukan ekspresi reguler dalam vim .

mchid
sumber
0

Gerhana yang terbaik meskipun agak berat untuk tujuan itu. Semua temuan tersedia di panel terpisah. (Kerangka) Anda dapat langsung melompat ke salah satu dari mereka.

elajmor
sumber