VIM中使用正则匹配中文

众所周知,使用JS的正则对中文进行验证时,可以使用:

/[\u4e00-\u9fa5]+/.test('中文')



但是在VIM中再使用这个正则时,则会提示无法找到匹配项

E384: 已查找到文件开头(结尾)仍找不到[\u4e00-\u9fa5]+



实际上,VIM的在进行搜索时,有一个'magic'设置,当magic设置为不同的情况时(默认的设置是magic),正则表达式的写法是不同的:

  • magic: 除了`^.*$`之外所有的字符都需要加反斜杠
  • nomagic: 除了`^$`之外所有的字符都需要加反斜杠
  • very magic: 任何字符都不需要加反斜杠
  • very nomagic: 任何字体都需要加反斜杠

可以在正则表达式中指定使用哪种magic

  • \m: magic
  • \M: nomagic
  • \v: very magic
  • \V: very nomagic

例如:

\v[\u4e00-\u9fa5]+ " 查找中文



所以之前的问题出在哪里也就一目了然了:

[\u4e00-\u9fa5]\+  " 默认为magic, `+`需要加反斜杠



对于多字节文字,VIM除了`\u`之外,还可以使用如`\U1234`表示小于`0xffffffff`的文字。

转载于:https://my.oschina.net/hotleave/blog/341500

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值