You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vim/NeoVim正则匹配:非关键字非空白符后接关键字或空格

匹配指定双字符组合的Vim/Neovim正则写法

Vim正则的字符类([])不支持直接嵌入\k这类预定义原子,所以[^\s\k]无法生效。你可以用逻辑与组合条件来实现需求,正确的正则表达式如下:

\(\S\&!\k\)\(\k\|\s\)

各部分说明:

  • \(\S\&!\k\):匹配第一个字符,同时满足两个条件:
    • \S:非空白字符(是\s的反义,覆盖所有可见字符)
    • !\k:非关键字字符(自动适配vim.opt.iskeyword的配置)
  • \(\k\|\s\):匹配第二个字符,满足**关键字字符(\k)或空白字符(\s)**任一条件即可

验证案例:

  • 匹配成功:!b、$a、$
  • 匹配失败:ab(第一个字符是关键字)、!@(第二个字符既非关键字也非空白)、 a(第一个字符是空白)

内容的提问来源于stack exchange,提问作者Dario Colombotto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 00:06:05