Tôi đã chơi đùa với các emacs lisp, và tôi muốn viết một chức năng nhỏ để thực hiện tìm kiếm biểu thức chính quy và thay thế. Tôi đã có một heck của một thời gian nhận được biểu thức chính quy để làm việc một cách chính xác bởi vì tôi đã không nhận ra rằng tất cả các ký tự đặc biệt cần phải được gấp đôi thoát khi viết lisp code (nhưng không phải khi sử dụng query-replace-regexp tương tác!).Emacs - cụm từ thông dụng trong Lisp cần phải được thoát kép - tại sao?
Vì vậy, ví dụ, sử dụng query-replace-regexp tương tác bạn có thể sử dụng
^\(.*\)[\t]-.*$
nhưng khi viết mã elisp bạn cần phải tăng gấp đôi thoát khỏi tất cả mọi thứ như vậy:
^\\(.*\\)[\t]-.*$
cuối cùng tôi đã tìm thấy một tham chiếu đến điều này trong một Steve Yegge article, nhưng tôi đã tự hỏi nếu có ai biết tại sao điều này là?
Dang, điều ngược lại thoát ra chỉ có tôi khi tôi đăng :) Tôi đã phải đặt \\\ (để có được nó ngay – scottfrazer
Ok, có ý nghĩa. Cảm ơn! –
Điều tương tự là t rue của bất kỳ ngôn ngữ nào không có hỗ trợ cú pháp trực tiếp cho các regex và xây dựng chúng thông qua các chuỗi ký tự (ví dụ: Java, Javascript), phải không? –