Vim正则表达式匹配unicode字符是非单词

时间:2013-10-15 15:42:59

标签: regex vim unicode

我有以下文字:

üyü

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

/\W

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

3 个答案:

答案 0 :(得分:3)

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

一些内置字符类(可以)包含多字节字符, 别人不这样做。常见的\w \a \l \u类仅包含ASCII 字母,所以即使是变形字符也不包含在其中,导致 意外行为!另请参阅https://unix.stackexchange.com/a/60600/18876

'isprint'选项(以及'iskeyword',确定w移动的动作),多字节字符256和 始终包含上面的内容,仅指定扩展的ASCII字符,最多255个 这个选项。

答案 1 :(得分:2)

我总是使用:

ASCII                           UTF-8
-----                           -----
\w                              [a-zA-Z\u0100-\uFFFF]
\W                              [^a-zA-Z\u0100-\uFFFF]

答案 2 :(得分:1)

您可以使用\%uXXXX来匹配多字节字符。在那种情况下......

/\%u00fc

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

请注意,在UNIX系统上使用默认值iskeywordü\k匹配。