19、Vim 搜索与匹配技巧全解析

Vim 搜索与匹配技巧全解析

正则表达式开关

在进行搜索时,创建正则表达式是一项常见需求。在非常非魔术搜索(very nomagic search)中创建正则表达式虽可行,但由于要对每个符号进行转义,操作起来比较麻烦。一般规则是:若要搜索正则表达式,使用 \v 模式开关;若要搜索逐字文本,使用 \V 字面开关。

使用括号捕获子匹配

在指定模式时,我们可以捕获子匹配并在其他地方引用它们。这个特性在与替换命令结合使用时特别有用,也可用于定义单词重复的模式。

例如,有这样一段文本:

I love Paris in the
the springtime.

很难一眼看出其中的语法错误 “the the”,这是因为大脑产生了一种词汇错觉。可以使用以下正则表达式来匹配重复的单词:

/\v<(\w+)\_s+\1>

在上述文本中搜索该模式,“the the” 会被高亮显示。将两行文本合并(使用 vipJ 命令)后,该模式依然能匹配。而且,这个模式不仅能匹配 “the the”,还适用于任何重复的单词对。

这个正则表达式的工作原理在于 () \1 的组合。括号内匹配的任何内容会自动分配到一个临时存储区,我们可以用 \1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值