【转载】Vim查找替换及正则表达式的使用
2015-11-16 19:55
633 查看
转自:http://tanqisen.github.io/blog/2013/01/13/vim-search-replace-regex/
这些选项可以合并使用,如
元字符
一些普通字符需转意
表示数量的元字符
表示位置的元字符
替换变量
在正则式中以
删除行首多余空格:
删除沒有內容的空行:
删除包含有空格组成的空行:
删除以空格或TAB开头到结尾的空行:
把文中的所有字符串“abc……xyz”替换为“xyz……abc”可以有下列写法
简单替换表达式
:[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有如下四个选项:
cconfirm,每次替换前询问;
eerror, 不显示错误;
ggloble,不询问,整行替换。如果不加
g选项,则只替换每行的第一个匹配到的字符串;
iignore,忽略大小写。
这些选项可以合并使用,如
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
删除以空格或TAB开头到结尾的空行:
%s/^[ |\t]*$//或者
g/^[ |\t]*$/d
把文中的所有字符串“abc……xyz”替换为“xyz……abc”可以有下列写法
:%s/abc\(.*\)xyz/xyz\1abc/g :%s/\(abc\)\(.*\)\(xyz\)/\3\2\1/g
相关文章推荐
- 欢迎使用CSDN-markdown编辑器
- 深入浅出 - Android系统移植与平台开发(十一) - Sensor HAL框架分析之一
- sql常用
- matlab中的图像类型
- K-Means++的代码 ,写的很好
- Node.js学习笔记9——Express框架
- 彻底明白Android中AIDL及其使用
- ARM的Abort异常
- IO(一):传统IO(基于字符,字节,Socket) 与BIO,NIO,AIO 介绍
- lightoj1034 Hit the Light Switches
- 硬件语言编写规范与技巧
- hibernate连接Oracle rac
- java笔记_集合
- leetcode 50:Pow(x, n)
- Thread的run()与start()的区别
- xml文件不能被正确解析/The processing instruction target matching "[xX][mM][lL]" is not al
- 图像分割
- HTML笔记(2)
- 在xml中添加array
- 第八周 数据结构实践项目——串【项目4-字符串加密】