2010-08-22 47 views
8

在.NET中,\p{L}匹配任何ascii或非ascii字母(所以它將匹配aü)。如何在Vim中使用正則表達式搜索字母(ascii和非ascii)?

http://www.regular-expressions.info/unicode.html#prop

是否有Vim的等效呢?

在Vim \a\w將只匹配範圍[a-z](或[0-9A-Za-z_])中的字符。

+0

僅供參考:http://vimdoc.sourceforge.net/htmldoc/pattern.html;看起來你可能會玩弄例如'\ P',即可打印字符(允許多字節),不包括數字。您可能必須覆蓋'isprint'選項的值。 – polygenelubricants 2010-08-22 12:38:44

回答

6

您可以明確告訴vim要匹配哪些十六進制值的範圍。這是怎樣的一個鳥槍法的,但如果你知道什麼是可能的範圍(如UTF-8爲例)這會工作:

/[\x7f-\xffa-zA-Z] 

您也可以通過直接輸入的Unicode字符搜索明確的Unicode值或者它的代碼格式如下:

/\%u0300 
+2

字符類(255,IIRC)中允許有多少個字符是有限制的。 – JXG 2011-05-19 09:18:20

相關問題