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的更多相关文章

  1. Gvim基础操作-01

    Gvim基础操作 进行代码或者是文本.脚本都要使用到文本编辑工具. vi是visual的缩写,其意为可视化.它是Unix系统文本编辑的标准工具.利用光标在屏幕上的移动,用户可以方便的建立.修改或者插入 ...

  2. ES5基础之正则表达式02:范围类、预定义类和边界字符

    1.范围类 //元字符 /* * 正则表达式由两种基本字符类型组成 * 1.原义文本字符:例如123abc * 2.元字符:元字符是在正则表达式中有特殊含义的非字母字符 */ //常见特殊符号:. * ...

  3. 实训任务02:Hadoop基础操作

    实训任务02:Hadoop基础操作 班级            学号               姓名 实训1:创建测试文件上传HDFS,并显示内容 需求说明: 在本地计算机上创建测试文件helloH ...

  4. 《Genesis-3D开源游戏引擎-官方录制系列视频教程:基础操作篇》

    注:本系列教程仅针对引擎编辑器:v1.2.2及以下版本 G3D基础操作   第一课<G3D编辑器初探> G3D编辑器介绍,依托于一个复杂场景,讲解了场景视图及其基本操作,属性面板和工具栏的 ...

  5. MYSQL 基础操作

    1.MySQL基础操作 一:MySQL基础操作 1:MySQL表复制 复制表结构 + 复制表数据 create table t3 like t1; --创建一个和t1一样的表,用like(表结构也一样 ...

  6. (大数据工程师学习路径)第一步 Linux 基础入门----正则表达式基础

    介绍 虽然我们这一节的标题是正则表达式,但实际这一节只是介绍grep,sed,awk这三个命令,而正则表达式作为这三个命令的一种使用方式(命令输出中可以包含正则表达式).正则表达式本身的内容很多,要把 ...

  7. 黑马程序员:Java基础总结----正则表达式

    黑马程序员:Java基础总结 正则表达式   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 正则表达式 import  java.util.regex.*; 符合一定规 ...

  8. 【Linux 操作系统】Ubuntu 基础操作 基础命令 热键 man手册使用 关机 重启等命令使用

    . : 关机, 如果将Linux默认运行等级设置为0, 系统将无法启动; -- : 多用户模式, 允许使用网络文件系统, 一般不使用图形界面登陆就是这种模式; -- : 多用户图形界面模式, 该模式下 ...

  9. python基础之 正则表达式,re模块

    1.正则表达式 正则表达式:是字符串的规则,只是检测字符串是否符合条件的规则而已 1.检测某一段字符串是否符合规则 2.将符合规则的匹配出来re模块:是用来操作正则表达式的 2.正则表达式组成 字符组 ...

随机推荐

  1. 齐博x2自建流媒体RTMP直播服务器

    这里只讲解大家最容易配置的Windows版,测试环境是2008版服务器及WIN7下载下面的软件,解压在任何目录都可,然后双击"启动.bat"即可http://down.php168 ...

  2. 2.pygame快速入门-绘制图像

    介绍 在游戏中能够看到的游戏元素大都是图像 图像文件初始是保存在磁盘上的,如果需要使用,第一步就需要被加载到内存 要在屏幕上看到某一个图像的内容,需要按照三个步骤 使用pygame.image.loa ...

  3. 题解 UVA439 骑士的移动 Knight Moves

    前言 最近板子题刷多了-- 题意 一个 \(8\times 8\) 的棋盘,问马从起点到终点的最短步数为多少. \(\sf Solution\) 要求最短路径嘛,显然 bfs 更优. 读入 这个读入处 ...

  4. MindStudio模型训练场景精度比对全流程和结果分析

    摘要:MindStudio是一套基于华为昇腾AI处理器开发的AI全栈开发平台 本文分享自华为云社区<MindStudio模型训练场景精度比对全流程和结果分析>,作者:yd_24730208 ...

  5. java将秒数转换为时分秒格式

    /** * 转换时间格式为xx小时xx分xx秒 * @param second xxxxx */ public String changeTimeFormat(String second) { Int ...

  6. 打不开 github 的方法与推荐基于Vue3与Element plus的后台管理系统

    一.打不开 github 的方法 1.打开本机 hosts 文件(C:\Windows\System32\drivers\etc) 2.然后在 hosts 文件里的末尾放入一下两个 IP 地址: # ...

  7. 1B踩坑大王

    题目链接 题目大意: 人们常用的电子表格软件(比如: Excel)采用如下所述的坐标系统: 第一列被标为 A,第二列为 B,以此类推,第 262626 列为 Z.接下来为由两个字母构成的列号: 第 2 ...

  8. 第2-3-6章 打包批量下载附件的接口开发-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss

    目录 5.6 接口开发-根据文件id打包下载附件 5.6.1 接口文档 5.6.2 代码实现 5.6.3 接口测试 5.7 接口开发-根据业务类型/业务id打包下载 5.7.1 接口文档 5.7.2 ...

  9. 图文详解在VMware Workstation 16 PRO虚拟机上安装Ubuntu 22.04.5 linux系统

    一.下载Ubuntu linux系统镜像 机构 下载地址 官网地址 https://cn.ubuntu.com/download 南京大学 https://mirrors.nju.edu.cn/ubu ...

  10. 5种典型 API 攻击及预防建议

    API 帮助跨多个设备互连多个应用程序或软件系统,定义它们可以发出的调用或请求的种类.调用的方式.应使用的数据格式以及应遵守的约定.API 已经发展成为重要的互连,支持不同应用程序架构之间的通信,促进 ...