zoukankan      html  css  js  c++  java
  • egrep 正则表达式

    egrep 正则表达式

    一.功能

    用正则表达式在文件或输入中搜索匹配的字符串,并打印出匹配的行。egrep匹配之前,会删除每行结尾的换行符。

    二.语法

    grep [OPTION]... PATTERN [FILE]...

    OPTION 是选项,如  -i  匹配时忽略大小写

    PATTERN 是正则表达式,需要用单引号扩起来

    FILE 是文件,可以同时搜索多个文件

    三.元字符

    3.1 行首与行尾

    ^ 匹配行首

    $ 匹配行尾

    3.2 字符组[]

    []字符组,用于匹配字符组内任意字符,在字符组内部与外部,关于元字符的规定是不同的。

    3.2.1 字符组内元字符

    连字符-”,在子字符组内连字符表示范围

    脱字符^”,在子字符组内脱字符表示否定

    3.2.2 字符组注意事项

    连字符-”,位于字符组内第一个字符时,只是普通字符,不具备特殊意义

    在字符组内字符 .   都是普通字符

    3.2.3 字符组例子

    [.?] 匹配.?,这里的元字符.?当做普通字符处理,这里的没有转译的功能。

    [-12] 匹配-12,这里的连字符当做普通字符处理

    [abc] 匹配abc

    [0-9] 匹配任意一个数字

    [a-z] 配置任意一个小写字母

    [0-9a-zA-Z] 匹配任意数字或字母

    [^1-5] 匹配1-5之外的任意字符

    3.3 多选结构 |

    | 表示”或”的意思,用于表示任意子表达式。多选结构用括号来界定范围

    3.3.1 多选结构例子

    grey|gray  gr(a|e)y gr[ae]y 都匹配 gray grey

    3.3.2 多选结构注意事项

    l 多选结构用括号来界定范围

    l 多选结构的每个子表达式自身都可能是完整的正则表达式,都可以匹配任意长度的文本

    3.3.3 多选结构与字符组的区别:

    字符组可以算是一门独立的微型语言,它对元字符有其自身的规定

    多选结构则是正则表达式语言主体的一部分。

    3.4 单词分界符

    < 用于匹配单词的首

    > 用于匹配单词的尾

    如:

    <Cat> 匹配单词Cat 不匹配包含Cat的其它单词,如Cata cCat

    元字符序列:

    3.5 可选项元素及量词

    元字符?用于表示可选项,表示有或者没有;元字符?一定要放在某个字符的后面,用于表示该字符有或没有,并且用括号来界定元字符?的作用对象

    如:

    July? 匹配Jul July ;都表示七月

    A(July)? 匹配A  July; 这里用括号来界定了元字符?的作用对象。

    July? (fourth|4(th)?) 匹配 July fourth July 4 July 4th Jul fourth Jul 4 Jul 4th

    量词

    名称

    含义

    问号

    匹配前面的字符0-1

    +

    加号

    匹配前面的字符1-N次,尽可能多匹配

    *

    星号

    匹配前面的字符0-N次,尽可能多匹配

    {min,max}

    匹配minmax次,

    3.6 括号及反向引用

    括号的作用:

    3.7.1. 界定|的范围

    3.7.2. 的把若干字符组合成一个单元,受量词的作用;?+*{m,n}

    3.7.3. 反向引用,

    括号能够“记忆”其中子表达式匹配到的文本,可用 um来获取这些匹配到的文本;num代表数字,从1开始,num的编号按照开括号出现的先后排序

    如果某个括号只是分组而不捕获,可以使用语法 (?:

    如;

    ([a-z])([0-9])12 1代表[a-z]匹配的内容 2代表[0-9]匹配的内容

    egrep -i ‘<([a-z]+) +1>’  file 匹配file中任意重复2次的单词

    3.7 简单记法:

    制表符

    换行符

    回车符

    s 任何“空白”字符(空格符,制表符,进纸符)

    S s之外的符合

    w [a-zA-Z0-9]

    W [^a-zA-Z0-9]

    d [0-9]

    D [^0-9]

    3.8 总结

    元字符

    名称

    匹配对象

    .

    匹配单个任意字符

    []

    字符组

    匹配任意列出的字符

    [^]

    排除型字符组

    匹配任意没有列出的字符

    ^

    脱字符

    匹配行首

    $

    美元符

    匹配行尾

    <

    反斜线-小于

    匹配词首

    >

    反斜线-大于

    匹配词尾

    |

    竖线

    匹配分隔两旁的任意一个表达式

    ()

    括号

    界定|的作用范围

  • 相关阅读:
    Java中静态字段和静态方法
    Java抽象方法、抽象类以及接口
    Java单例模式
    java继承
    java构造方法
    java方法
    Java常量与变量
    Java初识
    1
    补码,反码,加减法运算,类型取值范围
  • 原文地址:https://www.cnblogs.com/ordili/p/9395735.html
Copyright © 2011-2022 走看看