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

VIM基础正则表达式`\(x\)\(y\)z\2\1`的可匹配值咨询

Vim基础正则\(x\)\(y\)z\2\1匹配规则说明

可匹配的字符串

这个正则可以匹配的典型字符串是xyzyx,规则拆解如下:

  • Vim基础正则(Basic Regular Expression, BRE)中,\(和\)包裹的内容为捕获组,会暂存匹配到的内容供后续反向引用
    • 第一个捕获组\(x\):匹配字符x,记为组1
    • 第二个捕获组\(y\):匹配字符y,记为组2
  • 中间的z匹配字面量字符z
  • \2是反向引用语法,代表和第2个捕获组完全一致的内容,即y
  • \1是反向引用语法,代表和第1个捕获组完全一致的内容,即x
  • 各部分拼接后,完整匹配序列为x+y+z+y+x,也就是xyzyx

无法匹配xyz的原因

xyz长度仅为3,而这个正则要求的匹配长度固定为5:两个捕获组各占1位、字面量z占1位、两个反向引用各占1位,总长度为5,自然无法匹配长度不足的xyz。如果仅需匹配xyz,直接使用普通正则xyz即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:48:05