vim正则匹配若干操作
时间:2022-06-21
本文章向大家介绍vim正则匹配若干操作,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
三种匹配命令用法:
1、/ (搜索)命令
其格式如下: /正则表达式 如:查找所有空行
/^s*$
2、:s(替换)命令
将第一个//之间的正则表达式替换成第二个//之间的字符串。 :s/正则表达式/替换字符串/选项
3、删除包含特定字符的行
元字符
元字符是具有特殊意义的字符。使用元字符可以表达任意字符、行首、行 尾、某几个字符等意义。
元字符一览
元字符 |
说明 |
---|---|
. |
匹配任意一个字符 |
[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个 |
表示位置的符号
元字符 |
说明 |
---|---|
$ |
匹配行尾 |
^ |
匹配行首 |
< |
匹配单词词首 |
> |
匹配单词词尾 |
用例
/chars+[A-Za-z_]w*; " 查找所有以char开头,之后是一个以上的空白,
" 最后是一个标识符和分号
/chars+[A-Za-z_]w*;
/dd:dd:dd " 查找如 17:37:01 格式的时间字符串
/dd:dd:dd
:s/<four>/4/g " 将当前行的four替换成4,但是fourteen中的four不替换
:s/<four>/4/g
:s/<four>/4/ " 替换当前行第一个 vivian 为 sky
:%s/<four>/4/g " 将所有行的four替换成4,但是fourteen中的four不替换,替换s前加%
1. 全局删除匹配到的行
:g/pattern/d
2. 删除第1-10行里的匹配到的行
:1,10g/pattern/d
3. 删除不包含指定字符的行
:v/pattern/d
或
:g!/pattern/d
- INET_ATON()函数在MySQL5.6版本和5.7版本的差异
- Linux主机之间ssh免密登录配置
- 远控木马Posion Ivy开始肆虐缅甸和其它亚洲国家
- Slf4j+Logback配置文件变量使用小记
- Storm消息处理可靠性保证
- git+github创建分支&提交并贡献代码(linux环境)
- 使用Nginx代理restful实现SSL链路加密
- 使用Nginx代理thrift NIO实现SSL链路加密
- TThreadedSelectorServer介绍及Direct Memory OOM分析
- 通过Java程序提交通用Mapreduce任务并获取Job信息
- Mapreduce 任务提交源码分析1
- Java分布式神经网络库Deeplearning4j 环境搭建和运行一个例子
- Java分布式神经网络库Deeplearning4j之上手实践手写数字图像识别与模型训练
- 调用腾讯优图开放平台进行人脸识别-Java调用API实现
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- R代码|基于特征重要性的特征排序代码
- windows-exploit-suggester使用指导
- lcx实现端口转发
- 支付宝二维码脱机认证库测试过程记录(andorid平台adb shell验证)
- R代码|dplyr包的使用示例
- ES 面试题
- 支付宝二维码脱机认证库在android的app下测试过程记录
- 在?进来看看怎么攻击JMX呗
- mysql 中的锁结构
- 我的小工具-远程读卡器web客户端(PHP+LUA)
- Linux下suid提权利用
- scala 类型 的最详细解释
- 【入坑JAVA安全】JAVA反射机制
- 小妹妹,我想握着你的手,不为别的,只为给你讲清楚CVE-2020-5902
- 不是吧?阿sir!周末你就不学习了吗?