2010-08-22 35 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

相关问题