当前位置: 首页 > news >正文

正则表达式扩展应用

使用扩展正则表达式 egrep

首先来看一条前面章节学习过的用来去除空白行和注释行的指令:

grep -v '^$' regular_express.txt |grep -v '^#'

可见,通常的 grep 指令需要使用两次管线命令。那么如果使用扩展正则表达式,则可以简化为:

egrep -v '^$|^#' regular_express.txt

利用支持扩展正则表达式的 egrep 与特殊字符 | 的组合功能来间隔两组字符串,如此一来,可以极大地化简指令。

此外,也可以使用 grep -E 来使用扩展正则表达式,不过一般更建议直接使用 egrepgrep -Eegrep 之间类似命令别名的关系。

扩展规则(一)

回忆一下,在非扩展正则表达式中,我们使用 * 来表示任意个重复字符(零至无穷多个):

grep -n 'goo*d' regular_express.txt

在扩展正则表达式中,则可以进一步细分为一个或一个以上零个或一个字符:

+ 表示重复一个或一个以上的前一个字符
egrep -n 'go+d' regular_express.txt
? 表示重复零个或一个的前一个字符
egrep -n 'go?d' regular_express.txt

执行上述三条指令,比较三者的不同。

4-3-0

扩展规则(二)

| 表示用或(or)的方式找出数个字符串

查找 gd 或 good:

egrep -n 'gd|good' regular_express.txt
() 表示找出组字符串

查找 glad 或 good,注意到由于二者存在重复字母,所以可以将其合并:

egrep -n 'g(la|oo)d' regular_express.txt

4-4-0

()+ 多个重复群组判别

查找开头是 A 结尾是 C 中间有一个以上的 xyzxz 字符串:

echo 'AxyzxyzxyzxyzC'|egrep 'A(xyz)+C'
​
echo 'AxyzxyzxyzxyzC'|egrep 'A(xz)+C'

结果显示 A(xyz)+C 可以匹配,A(xz)+C 没有匹配项。

4-4-1

至此,关于正则表达式的基本知识就介绍完了,希望同学们多加练习,最终能够熟练地运用所学的关于正则表达式的知识,达到简化字符串处理的目的。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux/C 高级——shell脚本
  • elasticsearch教程
  • 学习记录——day28 信号量集
  • 未来展望:PLC远程控制网关与工业物联网融合的发展趋势
  • 【Linux】系列入门摘抄笔记-4-查看文件内容命令cat/more/less/tail
  • web基础与http协议与配置
  • 美的神机后续
  • 【Datawhale AI夏令营第四期】 Datawhale AI夏令营第四期 魔搭-AIGC方向 Task01笔记
  • Android 文件上传与下载
  • 引导过程与服务控制
  • springbootAl农作物病虫害预警系统-计算机毕业设计源码21875
  • 数据库|SQLServer数据库:数据的基本查询
  • 应急响应:D盾的简单使用.
  • MySQL 5.7 DDL 与 GH-OST 对比分析
  • TCP简易通信实现
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • HTTP--网络协议分层,http历史(二)
  • HTTP中的ETag在移动客户端的应用
  • leetcode98. Validate Binary Search Tree
  • Python中eval与exec的使用及区别
  • React中的“虫洞”——Context
  • Vue2.x学习三:事件处理生命周期钩子
  • 测试开发系类之接口自动化测试
  • 记一次删除Git记录中的大文件的过程
  • 前端
  • 前端学习笔记之观察者模式
  • 前嗅ForeSpider采集配置界面介绍
  • 手写双向链表LinkedList的几个常用功能
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 关于Android全面屏虚拟导航栏的适配总结
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​configparser --- 配置文件解析器​
  • ‌移动管家手机智能控制汽车系统
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (pojstep1.3.1)1017(构造法模拟)
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (转)为C# Windows服务添加安装程序
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • **CI中自动类加载的用法总结
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .mp4格式的视频为何不能通过video标签在chrome浏览器中播放?
  • .net framework 4.0中如何 输出 form 的name属性。
  • .Net 垃圾回收机制原理(二)
  • .NET编程——利用C#调用海康机器人工业相机SDK实现回调取图与软触发取图【含免费源码】
  • .NET开源、简单、实用的数据库文档生成工具
  • .NET企业级应用架构设计系列之开场白
  • .Net中wcf服务生成及调用
  • .skip() 和 .only() 的使用
  • /boot 内存空间不够
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • @PreAuthorize注解
  • @RequestMapping 的作用是什么?