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