我有以下文字:
üyü
以下正则表达式搜索匹配字符 ü:
/\W
Vim 正则表达式中是否有 unicode 标志?
不幸的是,还没有这样的标志。
一些内置字符类(可以)包含多字节字符,而另一些则不包含。普通\w
\a
\l
\u
类只包含 ASCII 字母,因此连变音符号都不包含在其中,从而导致意外行为!另请参阅https://unix.stackexchange.com/a/60600/18876。
在'isprint'
选项中(和'iskeyword'
,它决定了像w
移动这样的动作),总是包含 256 及以上的多字节字符,仅使用此选项指定最多 255 的扩展 ASCII 字符。
我总是使用:
ASCII UTF-8
----- -----
\w [a-zA-Z\u0100-\uFFFF]
\W [^a-zA-Z\u0100-\uFFFF]
您可以使用\%uXXXX
来匹配多字节字符。那样的话……</p>
/\%u00fc
但我不知道有一个标志会使整个匹配的多字节友好。
请注意,iskeyword
对于 UNIX 系统上的默认值,ü
与\k
.