标签:body size 表示 code 访问 第一个 数字 正则表达 使用
:[range]s/from/to/[flags]
range
:搜索范围,如果没有指定范围,则作用于但前行。
:1,10s/from/to/
表示在第1到第10行(包含第1,第10行)之间搜索替换;:10s/from/to/
表示只在第10行搜索替换;:%s/from/to/
表示在所有行中搜索替换;1,$s/from/to/
同上。flags
有如下四个选项:
c
confirm,每次替换前询问;e
error, 不显示错误;g
globle,不询问,整行替换。如果不加g
选项,则只替换每行的第一个匹配到的字符串;i
ignore,忽略大小写。这些选项可以合并使用,如cgi
表示不区分大小写,整行替换,替换前询问。
元字符
元字符 | 说明 |
---|---|
. | 匹配任意字符 |
[abc] | 匹配方括号中的任意一个字符,可用- 表示字符范围。如[a-z0-9]匹配小写字母和数字 |
[^abc] | 匹配除方括号中字符之外的任意字符 |
\d | 匹配阿拉伯数字,等同于[0-9] |
\D | 匹配阿拉伯数字之外的任意字符,等同于[^0-9] |
\x | 匹配十六进制数字,等同于[0-9A-Fa-f] |
\X | 匹配十六进制数字之外的任意字符,等同于[^0-9A-Fa-f] |
\l | 匹配[a-z] |
\L | 匹配[^a-z] |
\u | 匹配[A-Z] |
\U | 匹配[^A-Z] |
\w | 匹配单词字母,等同于[0-9A-Za-z_] |
\W | 匹配单词字母之外的任意字符,等同于[^0-9A-Za-z_] |
\t | 匹配<TAB> 字符 |
\s | 匹配空白字符,等同于[\t] |
\S | 匹配非空白字符,等同于[^\t] |
元字符 | 说明 |
---|---|
\* | 匹配* 字符 |
. | 匹配. 字符 |
\/ | 匹配 / 字符 |
\ | 匹配 \ 字符 |
\[ | 匹配 [ 字符 |
\] | 匹配 ] 字符 |
元字符 | 说明 |
---|---|
* | 匹配0-任意个 |
\+ | 匹配1-任意个 |
\? | 匹配0-1个 |
\{n,m} | 匹配n-m个 |
\{n} | 匹配n个 |
\{n,} | 匹配n-任意个 |
\{,m} | 匹配0-m个 |
元字符 | 说明 |
---|---|
$ | 匹配行尾 |
^ | 匹配行首 |
\< | 匹配单词词首 |
\> | 匹配单词词尾 |
替换变量
在正则式中以 \(
和 \)
括起来的正则表达式,在后面使用的时候可以用 \1
、\2
等变量来访问 \(
和 \)
中的内容。
:%s/\s+$//g
%s/^\s*//
或者 %s/^ *//
%s/^$//
或者 g/^$/d
%s/^\s*$//
或者 g/^\s*$/d
%s/^[ |\t]*$//
或者 g/^[ |\t]*$/d
把文中的所有字符串“abc……xyz”替换为“xyz……abc”可以有下列写法
:%s/abc\(.*\)xyz/xyz\1abc/g
:%s/\(abc\)\(.*\)\(xyz\)/\3\2\1/g
原文:tanqisen.github.io/blog/2013/01/13/vim-search-replace-regex/
标签:body size 表示 code 访问 第一个 数字 正则表达 使用
原文地址:https://www.cnblogs.com/sbchen/p/10037335.html