三个文章是连住同一个小姐姐。

首先我们回忆一下部分的正则表达式

  1. 星号(*)指定匹配的零个活多个字符

  2. 问号(?)可以指定任意单个字符

  3. [...]指定包含在中括号中的任意字符

  4. 点号(.)能够匹配任意单个字符,不论是什么字符

接下来我用ed来演示大量的正则表达式。

共8124个字符

其实,我的测试文档不好,很多的字符串没有,匹配不出来。能演示到什么情况听天由命。

p为打印命令,范围限定为1,$打印整个文件。

/ ... /                                查找由空格包围的3个字符

         The Unix operating system was pioneered by Ken        /         Repeat last search        Thompson and Dennis Ritchie at Bell Laboratories

1,$s/p.o/XXX/g                       将所有的p.o修改成XXX

1,$p                                   查看修改结果

        The Unix operating system was XXXneered by Ken        ThomXXXn and Dennis Ritchie at Bell Laboratories        in the late 1960s. One of the primary goals in        the design of the Unix system was to create an        environment that XXXmoted efficient XXXgram        development.

在第一次搜索中,ed从文件起始部分开始查找,在第一行中发现字符序列was符合指定的模式并将其打印出来。

重复上一次的搜索(ed命令/)使得文件的第二行被显示出来,因为and与指定模式匹配。接下来的替换命令s将符合下列模式的字符系列替换成XXX:字符p,接着是任意单个字符,然后是字符o。前缀1,$指明在全文范围内应用替换操作,替换操作的格式为s/old/new/g,其中s表明是替换操作,斜线用来界定被替换内容和替换内容,g表明执行全局替换,而不仅仅是替换某一行。

匹配行首:脱字符(^)

如果脱字符^作为正则表达式的第一个字符,它可以匹配行首位置。因此,下列正则表达式

^George

只能够匹配出现在行首的George。在正则表达式中,这因此称为“左根部”(left-rooting)。

来看下面的例子:

/the/

        >>in the late 1960s. One of the primary goals in        >>the design of the Unix system was to create an

/^the/                                 查找以the开头的行

 the design of the Unix system was to create an

1,$s/^/>>/                            在每一行的行首插入>>

1,$p

        >>The Unix operating system was pioneered by Ken        >>Thompson and Dennis Ritchie at Bell Laboratories        >>in the late 1960s. One of the primary goals in        >>the design of the Unix system was to create an        >>environment that promoted efficient program        >>development.

上述例子中同样展示了如何使用正则表达式^匹配行首位置。其中利用其在每行的首部插入字符>>。

下列命令

1,$s/^/     /

也常用于在行首插入空格(在本例中插入了4个空格)。

匹配行尾:美元符号($)

如同^可以用来匹配行首,美元符号$可以匹配行尾。因此,正则表达式

contents$

能够匹配出现在行尾的字符序列contents。

那么你认为下列正则表达式能够匹配到什么?

  .$

它能够匹配行尾的点号?不仅如此。别忘了点号可以匹配任意字符,因此这个正则表达式匹配的是行尾的任意字符(包括点号)。

那该如何匹配点号?一般而言,如果你想匹配任何对于正则表达式来说有特殊含义的字符,可以在该字符前加上一个反斜线(\)来去除其特殊含义。例如,下面的正则表达式

  \.$

能够匹配以点号结尾的行。正则表达式

   ^\.

能匹配以点号开头的行。

想将反斜线作为普通字符?可以使用连续两个反斜线\\。

   /\.$/                               搜索以点号结尾的行
 development.
  1,$s/$/>>/                           将>>添加到每行的行尾  1,$p
  The Unix operating system was pioneered by Ken>>        Thompson and Dennis Ritchie at Bell Laboratories>>        in the late 1960s. One of the primary goals in>>        the design of the Unix system was to create an>>        environment that promoted efficient program>>        development.>>
 1,$s/..$//                             删除每行最后两个字符 1,$p
        The Unix operating system was pioneered by Ken        Thompson and Dennis Ritchie at Bell Laboratories        in the late 1960s. One of the primary goals in        the design of the Unix system was to create an        environment that promoted efficient program        development.

^和$的一种普遍用法是下面的正则表达式

^$

它能够匹配空行。注意,这个正则表达式和下面的正则表达式不同:

 ^ $

它匹配的是由单个空格组成的行。

我不行了,就写这么多今天。

正则表达式 匹配点号_在Unix和Mac上的Shell编程(正则表达式)相关推荐

  1. 正则表达式 匹配点号_自动化关联篇JMeter(十)-正则表达式关联

    jmeter中,接口自动化的关键在于参数关联.比如需要登录的接口,如何调用登录口令?一个增删改查的闭环,如何将接口参数上下传递?下面就以实际的例子来仔细说一说 1:登录接口 这里有一个实际的登录接口, ...

  2. 正则表达式 匹配点号_Python入门:正则表达式(Regular Expression)

    正则表达式用来干嘛 正则表达式是用来匹配文本的一种语言.别被语言吓到,正则表达式其实非常简单,可能你花2个小时就能用起来,但是你一定会觉得非常强大,像非常厉害的数据爬取,网页爬虫,都要用到正则表达式! ...

  3. java正则表达式匹配数字范围_在java中怎么利用正则表达式匹配数字

    在java中怎么利用正则表达式匹配数字 发布时间:2020-12-03 17:47:12 来源:亿速云 阅读:58 作者:Leah 在java中怎么利用正则表达式匹配数字?针对这个问题,这篇文章详细介 ...

  4. 正则表达式 匹配点号_Javascript正则表达式验证账号、手机号、电话和邮箱

    正则表达式是用于匹配字符串中字符组合的模式.在 JavaScript中,正则表达式也是对象.这些模式被用于 RegExp 的 exec 和 test 方法, 以及 String 的 match.rep ...

  5. 正则表达式匹配减号_THOR断点教程0910 网球规则1112 后附常用正则表达式数据...

    插播-火勇G6:库日天模式已开启 写在前面: 分享的资源及教程均来自于互联网! 小编本人没有任何收费的资源及内容,均为免费分享!小编只是资源的搬运工,是个渣渣小白!如果对于教程内容有疑问可以尝试咨询视 ...

  6. Linux疑难杂症解决方案100篇(九)-SHELL编程正则表达式

    1. 正则表达式是什么? 正则表达式(Regular Expression.regex或regexp,缩写为RE),也译为正规表示法.常规表示法,是一种字符模式,用于在查找过程中匹配指定的字符. 许多 ...

  7. Linux Shell编程 - 正则表达式

    一.基础正则表达式 1.正则表达式:正则表达式是用来在文件中匹配符号条件的字符串,正则是包含匹配 grep.awk.sed等命令可以支持正则表达式. 2.通配符:用来匹配符合条件的文件名,通配符是完全 ...

  8. EPICS教程1 -- 在Linux/UNIX/DARWIN(MAC)上安装

    1.1 EPICS有关于什么? 我们假设你多少知道EPICS是什么.这里我们从头开始并且达到这一点:我们有一台提供某些用于读取(caget或pvget)和写入(caput或pvput)的PVs的工作服 ...

  9. python正则表达式匹配专利号

    专利号示例: CN109583349-A .US2020258388-A1.WO2020164484-A1.US8055018-B2.TW331307-B1 分析: 前两位为字母,中间为长度6–11的 ...

最新文章

  1. activiti工作流引擎入门教程
  2. [云炬创业基础笔记] 第四章测试12
  3. 数组中的元素赋值给元素_漫画:寻找无序数组的第k大元素
  4. 受众定向_我如何了解社区与受众之间的差异
  5. 经典排序算法(二)--桶排序Bucket Sort
  6. 华中师范大学计算机考研论坛,2020年华中师范大学计算机考研经验分享
  7. 一个将汉字转换成拼音的npm包
  8. Excel 常用函数——关联匹配函数
  9. 计算机网上邻居的网络密码是什么,网上邻居打开时需访问密码是怎么回事
  10. 【USB笔记】设备功能描述符Device Capability Descriptor
  11. 解决Mybatis报错问题:Type interface com.tjcu.dao.UserDao is not known to the MapperRegistry.
  12. Elasticsearch——Bboss
  13. 百度天气API 获取天气
  14. springboot 单点登录
  15. CALL入门篇一:CALL的本质
  16. Thinkpad T450 安装固态硬盘及内存条
  17. LED屏显示模块的组成及工作原理介绍
  18. TIL —静态工厂方法
  19. 超高频工业PDA手持机的应用方案
  20. python简单读写记账代码_Python之区块链简单记账本实现

热门文章

  1. Redis 进阶 -- 发布与订阅
  2. JVM中TLAB初认识
  3. android文件传输到电视,快牙及时分享 安卓手机传输文件最佳方案
  4. Driver.js - 开源无依赖的 web 新手交互引导工具库,功能强大、高度可定制
  5. 关于六一儿童节的回忆
  6. 同余方程 ax≡1(mod b) POJ 1061 青蛙的约会
  7. Vue(二)vue 指令及用法举例
  8. java使用CXF调用webservice(生成客户端代码方式)
  9. UPX对Android上ELF加壳使用过程中的若干问题总结
  10. SDN和SD-WAN的概念别再搞混了—Vecloud微云