《Vim 实用技巧必知必会》学习笔记Day10

最基本的 6 个特殊模式项:

  • \? 表示之前的匹配原重复零次或一次:如 aa\? 可以匹配“a”、“aa”,但不能完整匹配“aaa”(可以匹配其前两个字符、后两个或最后一个字符)。
  • \+ 表示之前的匹配原重复一次或多次:如 aa\+ 可以匹配“aa”、“aaa”,但不能匹配“a”或“b”。
  • \{n,m} 表示之前的匹配原重复 n 到 m 遍之间,两个数字可以省略部分或全部:如 a\{3}(可读作:3 个“a”)可以匹配“aaa” ,a\{,3}(可读作:最多 3 个“a”)可以匹配“”、“a”、“aa”和“aaa”;两个数字都省略时等价于 *,也就是之前的匹配原可以重复零次或多次。
  • \( 和 \) 括起一个模式,将其组成为单个匹配原:如 \(foo\)\? 可以表示单词“foo”出现零次或一次。\( 和 \) 还有一个附加作用,是捕获匹配的内容,按 \( 出现的先后顺序,可以用 \1、\2 到 \9 来引用。如果你不需要捕获匹配内容的话,用 \%( 和 \) 的性能更高。
  • \& 是分支内多个邻接(concat)的分隔符,概念上可以和与操作相比,表示每一项都需要匹配成功,然后取最后一项的结果返回:如 .*foo.*\&.*bar.* 匹配同时出现了“foo”和“bar”的完整行。相对来讲,\& 没那么常用。
  • \| 是多个分支的分隔符,概念上可以和或操作相比,表示任意一项匹配成功即可:如 foo\|bar 可匹配“foo”或“bar”两单词之一。

接下来,是 13 个特殊模式项。虽然它们相对来说不那么必需,但掌握它们可以大大地提高程序员的编辑效率。

  • \< 匹配单词的开头
  • \> 匹配单词的结尾
  • \s 匹配空白字符 <Space> 和 <Tab>
  • \S 匹配非空白字符\d 匹配数字,相当于 [0-9]
  • \D 匹配非数字,相当于 [^0-9]
  • \x 匹配十六进制数字,相当于 [0-9A-Fa-f]
  • \X 匹配非十六进制数字,相当于 [^0-9A-Fa-f]
  • \w 匹配单词字符,相当于 [0-9A-Za-z_]
  • \W 匹配非单词字符,相当于 [^0-9A-Za-z_]
  • \h 匹配单词首字符,相当于 [A-Za-z_]
  • \H 匹配非单词首字符,相当于 [^A-Za-z_]
  • \c 忽略大小写进行匹配

以上我们讨论的实际上是 Vim 缺省设置下的正则表达式。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值