• Linux Bash之正则表达式


    首先注意:正则表达式与通配符是完全不同的概念。通配符(wildcard)代表的是 Bash 操作接口的一个功能,而正则表达式是一种字符串处理的表示方式,一定要区分开来。

    正则表达式(Regular Expression)是通过一些特殊字符的排列,用以查找/替换/删除一行或多行文字字符串。

    也即是说,正则表达式是用在字符串处理上的一项表达式,它不是一个工具程序,而是一个字符串处理的标准依据,如果我们想以正则表达式的方式处理字符串,就要使用支持正则表达式的工具程序,如 vim、sed、awk、grep 等。

    A regular expression is a pattern that describes a set of strings.
    regexp are constructed analogously to arithmetic expressions, by using various operators to combine smaller expressions.
    grep understands three different regexp syntax: “basic” (BRE), “extended” (ERE) and “perl” (PCRE).
    In GNU grep, there is no difference in available functionality between basic and extended syntaxes.

    首先介绍第一部分,基本正则表达式的基本组成部分,见表1-1,如果想要在大部分机器上都可以使用的可移植脚本,只使用基本组成部分是一个好的选择。

    基本正则与扩展正则的区别在于,基本正则中,字符(? + | {} ()  )被解释为普通字符,也即其字面意思,如果要使用其对应的特殊含义,如使用  ()  表示选项列表,  |  表示选项等,需要加反斜杠   转义。

    而在扩展正则中,默认字符(  ? + | {} ()  )被解释为特殊含义,如果要使用其对应的普通字符含义,需要加反斜杠   转义。

    然后来看第二部分,对于 Shell 中的 POSIX 字符,如表1-2所示,基本上可以根据符号猜出其含义,即所谓望文生义,比较容易记忆。这部分对基本正则,扩展正则以及 Perl 格式的正则表达都是一样的,特定的符号特定的含义。

    Such certain named classes of characters are predefined within bracket expressions. Their names are self explanatory.

     

    接下来是第三部分,元字符及其含义和使用示例,如表1-3所示,这里也只是给出基本正则和扩展正则中支持的元字符,对于Perl风格的正则能支持的更多的字符在稍后的部分展示。 

    The symbol  matches the empty string at the edge of a word, and B matches the empty string provided it's not at the edge of a word.
    The symbol w is a synonym for [_[:alnum:]] and W is a synonym for [^_[:alnum:]].
    The symbols < and > respectively match the empty string at the beginning and end of a word.

    第四部分,对于扩展正则以及 Perl 风格的正则,其所支持的功能更多更复杂,使用起来也是更方便,其在基本正则的基础上又有一些新的表示和约定,如表1-4所示。

    最后一部分, Perl 风格的正则相对于基本正则和扩展正则而言能支持更丰富的元字符,如表1-5所示,有了更多的定义和用法。

    参考资料

    [1] Shell正则表达式

    [2] ASCII

  • 相关阅读:
    数据库设计中的四个范式(转)
    几个SQL
    一个整形数组,找其中第二大值
    装箱与拆箱
    继承与隐藏方法
    C++/C# 最基本的Marshal和Ptr
    C++/C#结构体转化-传string给C++
    C++/C#结构体转化-二维数组-bytes To Strings
    C# 懒人常用异步方法
    jsplumb 的初次使用
  • 原文地址:https://www.cnblogs.com/phillee/p/10949796.html
Copyright © 2020-2023  润新知