Manual menggambarkan karakter khusus regexp ^
dan $
. Seperti kebanyakan dialek ekspresi reguler yang saya tahu, mereka sepertinya cocok dengan awal atau akhir sebuah string. Namun, saya juga menemukan bahwa ada `
dan '
karakter yang tersedia. Berdasarkan penjelasan yang ditemukan di sini , mereka tampaknya juga cocok dengan awal atau akhir string. Bisakah seseorang menjelaskan perbedaan antara karakter khusus ini, dengan contoh dan rekomendasi kapan menggunakannya?
Ketika saya melihat nilai auto-mode-alist
, mereka tampaknya digunakan secara bergantian untuk mencocokkan akhir string:
(...
("\\.scss\\'" . scss-mode)
("\\.ya?ml$" . yaml-mode)
...)
elisp
regular-expressions
Jackson
sumber
sumber
$
seperti itu, mereka menggunakan nama file yang tidak mengandung baris baru. Ini biasanya akan menjadi asumsi yang sangat aman, tetapi tidak dijamin .\\'
Oleh karena itu menggunakan adalah praktik terbaik.Jawaban:
String Anda mungkin memiliki karakter baris baru yang disematkan, dalam hal ini
\'
cocok dengan akhir string tetapi$
cocok sebelum karakter baris baru.Mengutip manual Elisp, simpul Regexp Special :
Demikian pula,
\`
cocok dengan awal string, tetapi^
cocok tepat setelah char baris baru. Sekali lagi, manual:Jadi untuk string yang biasanya ingin Anda gunakan
\`
dan\'
, terutama jika kode Anda tidak dapat mengetahui sebelumnya apakah mungkin ada baris baris baru di string. Untuk teks dalam buffer yang biasanya Anda gunakan^
dan$
.sumber
^
dan$
cocok dengan awal dan akhir garis .\`
dan\'
cocokkan awal dan akhir dari seluruh string .sumber
Karakter khusus adalah:
. * + ? ^ $ \ [
.Antara kurung
[]
, berikut ini juga istimewa:] - ^
Banyak karakter termasuk backtick `, dan single quote ', menjadi istimewa ketika mereka mengikuti backslash. Lihat di sini untuk detail lebih lanjut.
Ada perbedaan antara
beginning of string
, danbeginning of each line in the string
.Atas perkenan Ergoemacs. Anda dapat membaca lebih lanjut di sini
sumber