gvim正则表达式常在命令行模式下使用,一般用于文本文件字符串的替换、删除等操作。
典型的替换命令格式:
%s/正则表达式/要替换的字符串/g”
典型删除命令格式:
%g/正则表达式/d
我们先讲元字符,接着讲述一些基本的应用例子,最后讲一些更高阶的应用例子,一文搞懂正则表达式!
一. 元字符
先搞清几个基本的概念,普通元字符,特殊元字符,数量元字符,位置元字符。
1. 普通元字符:
通常用来表示数字、单词、空格等。
2. 特殊字符:
特殊字符通常用来表示一些特殊的符号,用\转义。
3. 数量元字符:
通常用来表示普通字符(数字、单词、空格)的数量。
4. 位置元字符
几个例子:
[abc] 表示匹配 a,b,c 中的任意一个字符;
\abc 表示匹配abc,abc为一个整体;
1 表示匹配除 a,b,c 以外的任意任意字符
^abc 表示匹配以abc为开头的字符串,abc为一整体
\<abc>\ 表示匹配固定单词abc
\w+ 表示匹配任意单词
二. 基础应用
替换与删除示例:
把所有的abc或者Abc都替换为大写的ABC;
命令: %s/[Aa]bc/ABC/g
删除所有空行(空行中无任何字符)
命令: %g/ ^ $/d
删除所有空行(空行中可以包含空白符、Tab键等)
命令:%g/^ \s * $/d
删除含有abc字符的行
命令1: g/abc/d
命令2: %s/.*\abc . *$//g (替换命令实现删除)
删除每行开头的空格
命令 :%s/^ *//g——通过替换命令实现删除效果
在文件中的每一行的开始插入abc字符
命令 ——:%s/^/abc/g
在每一行尾部都加上abc字符
命令: %s/$/abc/g
删除以数字开头的行
命令: %s/^\d . *$ //g
三. 高阶应用-分组
所谓分组,即使用 \ ( 和 \ )符号括起来的正则表达式,即可在其后面使用\1 ,\2等变量来访问 \ ( 和 \ )符号括起来的内容。
交换顺序: ABC:XYZ 改为XYZ:ABC
命令:%s/\ (.\ ):\ (.\ )/\2:\1/g
abc开头的后面为一个或多个空格,然后为一个单词,将abc和该单词交换位置
命令: %s/^(abc)\s+ (\w+) /\2 \1/g
删除重复行
命令 :%s/^\ (.*)(\n\1){2,}/\1/g (将2行及以上重复行压缩成一行)
解释:^(. * )表示以任意字符开头的行,\n表示换行符,\ (\n\1){2,}表示^(.* )换行后重复2次以上,替换成一行。
给各行开头加上行号+: (123: )
命令: %s/^/\=line('.').':'
解释:^代表行首,\line('.')代表获取行号的函数,.':'代表拼接:号,最终格式为: "行号:"。
参考文档:
- Vim documentation : vim online
- Vim 对特定行处理常用方法(四):删除、压缩重复行 - 知乎 (zhihu.com)
- GVIM/VIM中的正则表达式详解_gvim正则表达式-CSDN博客
作者:芯片设计验证
文章来源:芯片设计验证
推荐阅读
- 探STA | 修timing violation的二十一种方法
- 物理签核工具Calibre学习之DRC和LVS
- 组合逻辑单元的驱动能力为何差?
- 小蔡IC人物访谈录2——STA工程师的成长之路
- IC设计:ram的应用-一种常见的解耦设计
更多IC设计干货请关注IC设计专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
- abc ↩