命令

  1. /(搜索)

    /正则表达式

  2. :s(替换)

    :s/正则表达式/替换字符串/选项

元字符

元字符一览表

元字符 说明
. 匹配任意一个字符
[abc] 匹配方括号中的任意一个字符。可以使用-表示字符范围,如[a-z0-9]匹 配小写字母和阿拉伯数字。
[^abc] 在方括号内开头使用^符号,表示匹配除方括号中字符之外的任意字符。
\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_]。
\t 匹配字符。
\s 匹配空白字符,等同于[ \t]。
\S 匹配非空白字符,等同于[^ \t]。

普通字符

   
元字符 说明
\* 匹配 * 字符。
\. 匹配 . 字符。
\/ 匹配 / 字符。
\\ 匹配 \ 字符。
\[  

表示位置的符号

元字符 说明
$ 匹配行尾
^ 匹配行首
\< 匹配单词词首
\> 匹配单词词尾

表示数量的元字符

vim 意义
* 0个或多个(匹配优先)
\+ 1个或多个(匹配优先)
\? 或 \= 0个或1个(匹配优先),\?不能在 ? 命令(逆向查找)中使用
\{n,m} n个到m个(匹配优先)
\{n,} 最少n个(匹配优先)
\{,m} 最多m个(匹配优先)
\{n} 恰好n个
\{-n,m} n个到m个(忽略优先)
\{-} 0个或多个(忽略优先)
\{-1,} 1个或多个(忽略优先)
\{-,1} 0个或1个(忽略优先)
\_. 匹配包含换行在内的所有字符
\{-} 表示前一个字符可出现零次或多次,但在整个正则表达式可以匹配成功的前提下,匹配的字符数越少越好
\= 匹配一个可有可无的项
\_s 匹配空格或断行
\_[]  

替换变量

在正规表达式中使用 \( 和 \) 符号括起正规表达式,即可在后面使用\1、\2等变量来访问 \( 和 \) 中的内容。

懒惰模式

| vim | 意义 | | ——– | ——————– | | \{-n,m} | 与\{n,m}一样,尽可能少次数地重复 | | \{-} | 匹配它前面的项一次或0次, 尽可能地少 | | \| | “或”操作符 | | \& | 并列 |

函数式

:s/替换字符串/\=函数式 在函数式中可以使用 submatch(1)、submatch(2) 等来引用 \1、\2 等的内容,而submatch(0)可以引用匹配的整个内容。

补充

| vim | 意义 | | ——– | ——————– | | () | 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 ) | || | 指明两项之间的一个选择。要匹配 |,请使用 | |