Gvim基础操作(正则表达式)-02
Gvim正则表达式
正则表达式在linux中使用非常广泛。主要是进行一些替换,在编写脚本的时候都会使用到。gvim、perl、sed、tcl中都会使用到。
Gvim正则表达式的使用
- 搜索命令
/正则表达式--搜索内容 - :%s(替换)命令
:%s/正则表达式/替换字符串/选项
元字符
. 表示匹配任意字符
[abc] 匹配方括号内的任意一个字符,可以使用-表示字符范围
[a-z0-9] 表示匹配0-9及小写字母
[^abc] ^表示匹配出来括号中的字符
\d 匹配阿拉伯数字
\D 匹配除了阿拉伯数字之外的字符
\x 匹配十六进制数
\X 匹配十六进制数字之外的任意字符
\w 匹配任意数字字母下划线
\W 匹配数字字母下划线之外的任意字符
\t 匹配tab
\s 匹配空白字符
\S 匹配非空白字符
特殊字符
\* 匹配*
\. 匹配.
\/ 匹配/
\\ 匹配\
\[ 匹配[
表示数量的元字符
* 匹配0-任意个
\+ 匹配1到任意个
\? 匹配0-1个
\{n,m} 匹配n-m个
\{n,} 匹配n-任意个
\{,n} 匹配0-n个
表示位置的符号
$ 表示行尾
^ 表示行首
\< 匹配单词词首
\> 匹配单词词尾
实例
1.将所有的help或者是Help换为HELP
:%s/[Hh]elp/HElLP/g
- substitute--执行的替换操作
- global执行的是其他命令
2.使用单一空格替换一个或者多个空格
:%s/ \+/ /g
3.删除没有字符的空行及有空字符的空行
:g/^\s*$/d d表示删除操作
4.删除某些字符的行
:g/ERROR/d
5.删除每行的前导空格
:%s/^ *//g
6.在每行的开始插入>
:%s/^/->g
7.在所有的行尾加一个句号
:%s/$/。/g
8.删除以数字开头的行
:%s/^\d.*$//g
9.删除以[a,b,c]开头的行
:%s/^[a|b|c].*//g
替换成空格,还有行,删除行直接替换成空/xxx//g
10.删除重复的行
使用(和)符号括起来的正则表达式,搜索得到的内容可以在后面的正则表达式进行引用\1、\2表示前面搜索到的第一个和第二个
/\(a\+\)[^a]\+\1
头部搜索1-n个a,中间匹配1-n个非a,最后\1,表示使用之前的内容和头部一致
意义:搜索头和尾处a的个数相同的字符串
aabbbbaa aaacccdhaaa abbbaa(x)
删除重复的行
:%s/^\(.*\)\n\1$/1/g
11.将多行重复的行压缩至一行
:%s/\(.*\)\(\n\1\)+$/\1/g
复杂的例子
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),5)
:%s/foo(\([^,]*,\[^,]*,[^,]*\))/foo(\2,\1,\3)/g
3.查找test开头的后面为一个或者式多个空格,然后作为一个单词。将test和这个单词调换位置
:%s/\(test\)\s\+\(\w\+\)/\2 \1/g
函数式
格式
:%s/替换字符串/=函数式
例1:将各行的id字符串替换为行号
%s/\<id\>/\=line(".")
2.将每行开头的单词替换为(行号-10)
:%S/^\<\W\+\>/\=(line(".")-10)
与perl正则表达式的区别
Sed用法
直接处理文件
1.删除所有的空行
sed '/^$/d' *.txt
2.删除所有只包含空格或者制表位的行
sed '/^[ ]*$/d' price.txt
3.删除所有的引号
sed 's/"//g' price.txt
正则表达式非常的灵活,同一种效果有不同的处理方式,这里只简单介绍常用的操作,其他操作后续补充
Gvim基础操作(正则表达式)-02的更多相关文章
- Gvim基础操作-01
Gvim基础操作 进行代码或者是文本.脚本都要使用到文本编辑工具. vi是visual的缩写,其意为可视化.它是Unix系统文本编辑的标准工具.利用光标在屏幕上的移动,用户可以方便的建立.修改或者插入 ...
- ES5基础之正则表达式02:范围类、预定义类和边界字符
1.范围类 //元字符 /* * 正则表达式由两种基本字符类型组成 * 1.原义文本字符:例如123abc * 2.元字符:元字符是在正则表达式中有特殊含义的非字母字符 */ //常见特殊符号:. * ...
- 实训任务02:Hadoop基础操作
实训任务02:Hadoop基础操作 班级 学号 姓名 实训1:创建测试文件上传HDFS,并显示内容 需求说明: 在本地计算机上创建测试文件helloH ...
- 《Genesis-3D开源游戏引擎-官方录制系列视频教程:基础操作篇》
注:本系列教程仅针对引擎编辑器:v1.2.2及以下版本 G3D基础操作 第一课<G3D编辑器初探> G3D编辑器介绍,依托于一个复杂场景,讲解了场景视图及其基本操作,属性面板和工具栏的 ...
- MYSQL 基础操作
1.MySQL基础操作 一:MySQL基础操作 1:MySQL表复制 复制表结构 + 复制表数据 create table t3 like t1; --创建一个和t1一样的表,用like(表结构也一样 ...
- (大数据工程师学习路径)第一步 Linux 基础入门----正则表达式基础
介绍 虽然我们这一节的标题是正则表达式,但实际这一节只是介绍grep,sed,awk这三个命令,而正则表达式作为这三个命令的一种使用方式(命令输出中可以包含正则表达式).正则表达式本身的内容很多,要把 ...
- 黑马程序员:Java基础总结----正则表达式
黑马程序员:Java基础总结 正则表达式 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 正则表达式 import java.util.regex.*; 符合一定规 ...
- 【Linux 操作系统】Ubuntu 基础操作 基础命令 热键 man手册使用 关机 重启等命令使用
. : 关机, 如果将Linux默认运行等级设置为0, 系统将无法启动; -- : 多用户模式, 允许使用网络文件系统, 一般不使用图形界面登陆就是这种模式; -- : 多用户图形界面模式, 该模式下 ...
- python基础之 正则表达式,re模块
1.正则表达式 正则表达式:是字符串的规则,只是检测字符串是否符合条件的规则而已 1.检测某一段字符串是否符合规则 2.将符合规则的匹配出来re模块:是用来操作正则表达式的 2.正则表达式组成 字符组 ...
随机推荐
- sql面试50题------(21-30)
文章目录 21.查询不同老师所教不同课程平均分从高到低显示 23.使用分段[100,85),[85,70),[70,60),[<60] 来统计各科成绩,分别统计各分数段人数:课程ID和课程名称 ...
- 关于针对XSS漏洞攻击防范的一些思考
众所周知,XSS几乎在最常见.危害最大的WEB漏洞.针对这个危害,我们应该怎么防范呢. 下面简单说一下思路. 作者:轻轻的烟雾(z281099678) 一.XSS漏洞是什么 XSS漏洞网上的资料太多, ...
- Dubbo-聊聊注册中心的设计
前言 Dubbo源码阅读分享系列文章,欢迎大家关注点赞 SPI实现部分 Dubbo-SPI机制 Dubbo-Adaptive实现原理 Dubbo-Activate实现原理 Dubbo SPI-Wrap ...
- 6.YAML文件详解、PyYaml操作
YAML简介: yaml是一种数据格式,支持注释,换行,多行字符串,裸字符串(正序,字符串) YAML作用: 用于全局的配置文件 用于测试用例编写 YAML语法规则: 区分大小写 使用缩进 ...
- 解决ffmpeg的播放摄像头的延时优化问题(项目案例使用有效)
在目前的项目中使用了flv的播放摄像头的方案,但是延时达到了7-8秒,所以客户颇有微词,没有办法,只能开始优化播放延时的问题,至于对接摄像头的方案有好几种,这种咱们以后在聊,今天只要聊聊聊优化参数的问 ...
- 浅谈API和SDK的区别
首先了解一下他们的定义 API:application program interface 应用程序接口 通常表示一些事先定义好的函数,为了向外部提供一组功能的实现,实现和其他软件的交互 SDK:so ...
- Windows7下驱动开发与调试体系构建——4.在x64下使用汇编代码(x86下的_asm)
目录/参考资料:https://www.cnblogs.com/railgunRG/p/14412321.html asm文件设置 在vs x64中无法使用_asm关键字,需要使用.asm文件. 按第 ...
- 前后端分离项目(九):实现"添加"功能(后端接口)
好家伙,来了来了,"查"已经完成了,现在是"增" 前端的视图已经做好了,现在我们来完善后端 后端目录结构 完整代码在前后端分离项目(五):数据分页查询(后端 ...
- PageRank原理分析
pagerank是将众多网页看成一个有向图,每个页面就是有向图中的节点.计算每个节点的出度和入度.如果一个网站被大量其他的网页引用,那么他就会有更高的pr分数. 原理 对于所有与节点i相连的节点,用他 ...
- 现代GPGPU 架构汇总
本篇是GPGPU 架构汇总的总章,参考的是AMD公布OpenCL 手册,该手册总结了AMD. Nvdia 早年的GPGPU体系架构,以及Opencl 各个API 与硬件结构的映射关系.本篇除了整理这两 ...