其他分享
首页 > 其他分享> > IC学习——gvim正则表达式

IC学习——gvim正则表达式

作者:互联网

/正则表达式:搜索命令

: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 匹配<TAB>字符
\s 匹配空白字符,等同于[\t]
\S 匹配非空白字符,等同于[^\t]

特殊字符:

\* 匹配*字符
\. 匹配.字符
\/ 匹配/字符
\\ 匹配\字符
\[ 匹配[字符

表示数量的元字符:

* 匹配0-任意个
\+ 匹配1-任意个
\? 匹配0-1个
\{n,m} 匹配n-m个
\{n} 匹配n个
\{n,} 匹配n-任意个
\{,m} 匹配0-m个

表示位置的符号:

$ 匹配行尾
^ 匹配行首
\< 匹配单词词首
\> 匹配单词词尾

实例:

1.把所有单词help或Help都改为大写的HELP

:%s/[Hh]elp/HELP/g

2.使用单个空格替换一个或多个空格

:%s/space\+/space/g   注:空格是空字符可能不明显用spcae替代

3.删除所有空行(没有任何字符,除了回车)

:g/^[\t]*$/d

4.删除含有某些字符的行

:g/ERROR/d

5.删除每行的所有的前导空格

:%s/^space*//g

6.在文件中的每一行的开始插入->(或其他字符)

:%s/^/->/g

7.在每一行的尾部加上一个句号(或其他字符)

:%s/$/。/g

8.删除以数字开头的行

:%s/^\d.*$//g

9.删除以[a,b,c]开头的行

:%s/^[a|b|c].*$//g

10.删除重复行

:%s/^\(.*\)\n\1$/\1/g 将两行重复行压缩成一行

:%s/^\(.*\)\(\n\1\)\+$/\1/g 将多行重复行压缩成一行

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

实例:

1.交换列表中所有连字符分隔的条目的顺序

ABC:XYZ

:%s/\(.*\):\(.*\)/\2:\1/g

2.将所有方法foo(a,b,c)的实例改为foo(b,a,c)

foo(bar(8),x+y+z,5) -> foo(x+y+z,bar(8),6)

:%s/foo(\([^,]*\),\([^,]*\),\([^,]*\))/foo(\2,\1,\3)/g

3.查找test开头的后面为一个或多个空格,然后为一个单词。将test和这个单词调换位置

:%s/\(test\)\s\+\(\w\+\)space/\2space\1/g

函数式:

格式:

  :s/替换字符串/\=函数式

例1:将各行的id字符串替换为行号

:%s/\<id\>/\=line(".")

例2:将每行开头的单词替换为(行号-10)

:%%s/^\<\w\+\>/\=(line(".")-10)

标签:字符,匹配,正则表达式,gvim,单词,等同于,IC,foo,任意
来源: https://www.cnblogs.com/jian-jia/p/16167846.html