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

如何编写精确Vim正则:匹配多行引号后紧跟逗号或句号的内容

Vim正则匹配紧跟标点的引号内容解决方案

问题出在你用的"\_.\{-}"[.,]里,\_.会匹配包括换行在内的所有字符(包括双引号),所以惰性匹配还是会跨过前面的引号,一直找到最后一个符合"[.,]的位置。要精准匹配,核心是限制引号内部的内容不能包含双引号,同时允许换行。

你可以用这个正则模式:

"\(\_.[^"]\)*"[.,]

如果开启非常魔法模式(加\v),可以简化成更易读的版本:

"\v(\_.[^"])*"[.,]

模式解析

  • ":匹配开头的双引号
  • \_.[^"]:匹配任意非双引号的字符(\_.包含换行,[^"]排除双引号)
  • *:重复前面的匹配,直到遇到下一个双引号
  • "[.,]:匹配结尾的双引号,以及紧跟的句号或逗号

这样就能精准捕获到后面紧跟标点的引号内容,不会错误匹配前面的引号对。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 01:42:38