Vim正则表达式匹配Unicode字符作为非单词

jvlzgdj9  于 2022-11-11  发布在  其他
关注(0)|答案(4)|浏览(162)

我有以下文字:

üyü

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

/\W

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

5gfr0r5j

5gfr0r5j1#

不幸的是,(目前)还没有这样的旗帜。
一些内置的字符类(可以)包含多字节字符,而另一些则不包含。常见的\w\a\l\u类只包含ASCII字母,因此即使是变音字符也不包含在其中,从而导致意外的行为!另请参阅https://unix.stackexchange.com/a/60600/18876
'isprint'选项(和'iskeyword',它确定像w这样的运动所经过的位置)中,始终包括256及以上的多字节字符,此选项仅指定最多255个扩展ASCII字符。

uxh89sit

uxh89sit2#

我总是用途:

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

e1xvtsh33#

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

/\%u00fc

但是我不知道有什么标志可以使整个匹配的多字节友好。
请注意,如果UNIX系统上的默认值为iskeyword,则ü将与\k匹配。

pqwbnv8z

pqwbnv8z4#

我经常发现S+带我去我想去地方。2例如:s/\(\S\+\)\s\+\(\S\+\).*/\1 | \2/选择“wörd1 w€rd2但不选择word3”,并将该行替换为“wörd1| w€ 2”

相关问题