2010-06-10 28 views
25

Tôi là một kẻ ngốc.ký tự unexode regex trong vim

Ai đó đã cắt và dán một số văn bản từ từ microsoft vào các tệp html đáng yêu của tôi.

bây giờ tôi có những ký tự unicode thay vì các biểu tượng quote thường xuyên, (ví dụ: dấu ngoặc kép xuất hiện như < 92> trong văn bản)

tôi muốn làm một regex thay thế nhưng tôi đang gặp rắc rối chọn chúng.

:%s/\u92/'/g 
:%s/\u5C/'/g 
:%s/\x92/'/g 
:%s/\x5C/'/g 

... tất cả đều thất bại. Google-fu của tôi đã thất bại.

Trả lời

47

Từ :help regexp (nhẹ thay đổi nội dung), bạn cần phải sử dụng một số cú pháp cụ thể để chọn các ký tự unicode với một biểu thức chính quy trong Vim:

\%u match specified multibyte character (eg \%u20ac) 

Đó là, để tìm kiếm các ký tự unicode với mã hex 20AC, nhập này vào mô hình tìm kiếm của bạn:

\%u20ac 

bảng đầy đủ các mẫu tìm kiếm nhân vật bao gồm một số tùy chọn bổ sung:

\%d match specified decimal character (eg \%d123) 
\%x match specified hex character (eg \%x2a) 
\%o match specified octal character (eg \%o040) 
\%u match specified multibyte character (eg \%u20ac) 
\%U match specified large multibyte character (eg \%U12345678) 
+1

cảm ơn! "rtfm" khi họ nói ... :) – aidan

+0

Cảm ơn bạn đã giúp tôi tìm đúng phần của tài liệu regexp (rất, rất dài) trong vim, và tôi thấy rằng nhiều người đã bỏ phiếu, nhưng tôi không đồng ý. Chỉ cần dán một vài dòng từ tài liệu mà không có ngữ cảnh làm cho câu trả lời này trở nên vô ích. Bao gồm ba cột bên trái chỉ đơn giản là khó hiểu, đặc biệt là không có tiêu đề cột (không liên quan ở đây). Tôi không biết ngữ cảnh này có nghĩa là gì "|/... |". Nó không xuất hiện trong sự giúp đỡ vim của tôi. Phần thực sự hữu ích của câu trả lời là: "(ví dụ: \% u20ac)". Phải xem xét cẩn thận để tìm nó. – Mars

+0

@Mars: Bạn nên chỉnh sửa câu trả lời để giúp câu trả lời hữu ích hơn. Chỉnh sửa được khuyến khích trên Stack Overflow! – michaelmichael

Các vấn đề liên quan