Mencari dan mengganti menggunakan ekspresi reguler jelas merupakan alat yang ampuh bagi pengguna Emacs yang secara rutin dapat melakukan tindakan ini. Namun, sebagai pemula Emacs (dan / atau pemrograman), ekspresi reguler perlu dipelajari dan dipraktikkan.
Bisakah saya belajar dan melatih ekspresi reguler secara interaktif di Emacs, mirip dengan tutorial bawaan Emacs? Jika tidak, apa saran lain untuk memanfaatkan Emacs untuk mempraktikkan penggunaan ekspresi reguler untuk mencari dan mengganti?
regular-expressions
learning
Felix Z. Hoffmann
sumber
sumber
Jawaban:
Selain itu
regexp-builder
Anda juga dapat mempertimbangkan visual-regexp untuk memberi Anda umpan balik visual pada penggantian yang sedang berlangsung:sumber
anzu
, yang melakukan hal yang sama dan lebih banyak.Anda dapat mencoba
M-x regexp-builder RET
yang merupakan pencocokan ekspresi reguler interaktif, itu tidak buruksumber
C-g
tidak keluar seperti yang Anda harapkan.C-c C-q
adalah pengikat kunci default untuk keluar dari pembuat regexp ketika Anda selesai berlatih.Saya menggunakan
regexp-builder
yang memungkinkan Anda menguji regexps secara interaktif dan mendapatkan umpan balik. Dan tentu saja, begitu saya mulai menggunakannya, saya langsung bertanya pada diri sendiri, "Bagaimana cara memasukkan regexp iniquery-replace-regexp
?"Jawaban yang saya pilih adalah fungsi berikut yang didefinisikan pada halaman EmacsWiki ReBuilder .
Jadi alur kerja saya adalah:
M-x re-builder
M-x reb-query-replace
sumber
Ini bisa menjadi bantuan yang luar biasa ketika belajar menggunakan regexps untuk melihat apa yang cocok dengan bagian regexp mana - khususnya, kelompok regexp. Dan untuk melakukan itu secara interaktif dan bertahap.
Sejalan dengan jawaban @ immerr, pencarian Icicles memiliki sorotan yang serupa untuk waktu yang lama.
sumber
Anda juga dapat menggunakan helm-regexp yang menampilkan grup regex secara terpisah.
sumber
Tidak di dalam emacs, tetapi http://rubular.com/ pada dasarnya adalah
regexp-builder
dengan cheat-sheet. Anda dapat mengatur contoh dan meminta tautan tersebut melampirkan contoh tersebut. Saya menggunakan ini ketika mendiskusikan regex dengan tim.sumber
Sebagai alternatif untuk Dave F,
regexp-builder
Anda juga dapat membuat teks arbitrer untuk mempraktikkan pencocokan pola.Fitur yang paling berguna dari perintah ini adalah bahwa ia akan menyorot kecocokan dalam buffer ketika pola dibuat untuk membantu Anda memastikan kecocokan pola yang tepat.
Menggunakan
(query-replace-regexp)
( C-M-%) dan membuat ekspresi reguler untuk melakukan penggantian yang Anda inginkan akan membantu Anda berlatih.sumber
regexp-builder
belum menawarkan? Masalahnyaquery-replace-regexp
adalah bahwa Anda perlu menulis seluruh regexp dan kemudian berkomitmen padanya untuk mencari tahu apa yang cocok. Jika Anda tidak menyukai hasilnya, Anda harus memulai dari awal lagi.regexp-builder
menunjukkan kecocokan dengan cepat yang membuatnya lebih mudah untuk mengubah regexp Anda sampai berfungsi jika Anda tidak tahu apa yang Anda lakukan.query-replace-regexp
akan membuat Anda terbiasa menggunakannya di Emacs secara khusus