IC学习——gvim正则表达式
2022/4/19 23:12:51
本文主要是介绍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)
这篇关于IC学习——gvim正则表达式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升