Làm thế nào để khớp biểu tượng trong regrec?


9

Tôi đang cố gắng xây dựng một biểu thức chính quy khớp với các ký hiệu, nghĩa là, những thứ như tên hàm và tương tự, theo các cài đặt chế độ chính hiện tại (nó được gọi là bảng cú pháp nếu tôi nhớ chính xác). Sau một số điều tra, tôi đã tìm thấy các biểu thức hữu ích này:

  • \_< phù hợp với sự bắt đầu của một biểu tượng

  • \_> phù hợp với kết thúc của một biểu tượng

Bây giờ tôi nghĩ rằng tôi cần tìm ra cách thể hiện tính cách cấu thành biểu tượng. Chúng tôi có \wcác ký tự cấu thành từ, nhưng tôi không thể tìm thấy bất cứ thứ gì cho các ký hiệu. Regrec để khớp các biểu tượng nên giống như (giả sử \skhớp với các ký tự cấu thành biểu tượng):

\_<\s+\_>

Tui bỏ lỡ điều gì vậy? Làm thế nào để phù hợp với các biểu tượng?


Lưu ý rằng kết hợp các từ không phù hợp với tôi. Ví dụ tầm thường là một cái gì đó giống như foo-barmột biểu tượng trong chế độ Emacs Lisp, nhưng không phải là một từ (vì -không phải là một ký tự cấu thành từ).


3
Tôi thường sử dụng (re-search-forward "\\_<\\(?:\\sw\\|\\s_\\)+\\_>" nil t). Nó hoạt động, nhưng tôi tự hỏi nếu có một cách ngắn hơn.
abo-abo

2
abo-abo: Thật xấu xí, AFAIK là những gì bạn cần làm, các biểu tượng đã cho có thể chứa cả ký tự cấu thành biểu tượng ký tự cấu thành từ. Bạn nên làm cho nó một câu trả lời. Đánh dấu, bạn sẽ muốn kiểm tra hướng dẫn để xem \sthực sự có nghĩa là gì, vì nó hoàn toàn khác với giả định của bạn.
phils

@phils, tôi thậm chí không biết điều đó \scó ý nghĩa gì trong biểu thức của Emacs, tôi chỉ chọn biểu tượng đó chẳng hạn.
Mark Karpov

@ Mark: Xem elisp dẫn sử dụng, nút biểu thức chính quy Dấu gạch chéo ngược .
Drew

Câu trả lời:


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.