命令
-  /(搜索) /正则表达式 
-  :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 | 意义 | | ——– | ——————– | | () | 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 ) | || | 指明两项之间的一个选择。要匹配 |,请使用 | |