Bagaimana saya bisa menguji dan menggunakan ekspresi reguler Perl secara interaktif?

15

Katakanlah saya memiliki buffer dengan teks. Saya ingin menguji ekspresi reguler (tipe Perl ideal) terhadap buffer saya dan meminta Emacs untuk mencocokkannya.

Misalnya, regexp berikut ( diambil dari Wikipedia ):

(?<=\.) {2,}(?=[A-Z]) 

akan cocok sebagai berikut pada teks berikut:

                    masukkan deskripsi gambar di sini

Ekspresi reguler ini khususnya cocok dengan setidaknya dua ruang yang terjadi setelah periode (.)dan sebelum huruf besar.

Apakah Emacs menyediakan pencocokan ekspresi reguler interaktif untuk ekspresi reguler Perl ?

Jika jawaban untuk yang terakhir adalah tidak:

  1. Apakah ada alasan mengapa dukungan asli ekspresi reguler Perl tidak pernah dipertimbangkan dalam Emacs? (mengingat itu adalah standar terkenal di Unix / Linux)

  2. Bagaimana orang bisa melanjutkan tentang membangun satu pencocokan reg reg Perl tersebut? (mungkin memanggil Perl di bawah tenda, atau pra-mengonversi regexp Perl ke varian yang didukung?)

Amelio Vazquez-Reina
sumber
2
Emacs regexps mendahului Perl beberapa saat, dan saya berasumsi mereka belum diubah karena alasan kompatibilitas mundur.
shosti
1
Juga, Anda mungkin ingin memeriksa github.com/joddie/pcre2el (saya belum menggunakannya, jadi saya tidak dapat menjaminnya).
shosti

Jawaban:

15

Ada dua paket bagus untuk bekerja dengan perl jenis regex secara efektif, yang harus digunakan bersama - visual-regexp dan ekstensi itu - visual-regexp-steroid . Mereka adalah tambahan yang bagus untuk emacs:

masukkan deskripsi gambar di sini

welldan97
sumber
2
Untuk memperjelas, visual-regexp menggunakan emacs regexp dan versi steroid dapat menggunakan PCRE atau Python regex sebagai backend.
Kaushal Modi