2

我有以下文字:

üyü

以下正则表达式搜索匹配字符 ü:

/\W

Vim 正则表达式中是否有 unicode 标志?

4

3 回答 3

4

不幸的是,还没有这样的标志。

一些内置字符类(可以)包含多字节字符,而另一些则不包含。普通\w \a \l \u类只包含 ASCII 字母,因此连变音符号都不包含在其中,从而导致意外行为!另请参阅https://unix.stackexchange.com/a/60600/18876

'isprint'选项中(和'iskeyword',它决定了像w移动这样的动作),总是包含 256 及以上的多字节字符,仅使用此选项指定最多 255 的扩展 ASCII 字符。

于 2013-10-15T16:20:19.623 回答
3

我总是使用:

ASCII                           UTF-8
-----                           -----
\w                              [a-zA-Z\u0100-\uFFFF]
\W                              [^a-zA-Z\u0100-\uFFFF]
于 2015-07-02T08:03:08.200 回答
2

您可以使用\%uXXXX来匹配多字节字符。那样的话……</p>

/\%u00fc

但我不知道有一个标志会使整个匹配的多字节友好。

请注意,iskeyword对于 UNIX 系统上的默认值,ü\k.

于 2013-10-15T16:14:17.047 回答