tang-learning

正则表达式

定义

  • 定义了用来过滤数据流中的文本的模式模板

正则表达式引擎

  • 作用

    • 一套底层软件,负责解析正则表达式模式并使用这些模式来进行文本匹配
  • 分类

    • 基础正则表达式(BRE)
    • 拓展正则表达式(ERE)

特殊字符(需转义)

  • .*^[]${ }+?|( )

基本正则表达式(结合sed)

  • 锚字符

    • 锁定在行首

      • ^
    • 锁定在行尾

      • $
    • 组合锚点(匹配空行)

      • ^$
    • 匹配除换行符之外的任意单个字符,包括空格

      • .
  • 字符组

    • 匹配包含在字符组内的字符

      • [... ]
  • 排除型字符组

    • 不匹配包含在字符组内的字符

      • [ ^ ...]
  • 特殊字符组

    • 匹配字母,不管大小写

      • [[:alpha:]]
    • 匹配0-9的数字

      • [[:digit:]]
    • 匹配空格和制表符

      • [[:blank:]]
    • 匹配任意0-9和a-z或A-Z的字符

      • [[:alnum:]]
    • ....

  • 区间

    • 连续

      • [a-zA-Z0-9]
    • 非连续

      • [a-ch-m]
  • 星号

    • 匹配出现了0次或多次的字符(*左侧的字符)

    • 组合字符

      • 匹配任意数量任意字符

        • .*

拓展正则表达式(结合gawk)

  • 问号

    • 匹配出现0次或1次的字符

      • ?
  • 加号

    • 匹配前面的字符可能出现1次或多次(至少一次)

      • +
  • 花括号(间隔)

    • 调整字符或字符集出现的次数

      • {m}
      • {m,n}
  • 管道符

    • 指定多个匹配模式

      • gawk '/A|B/{print $0}'
  • 分组

    • 分组后可当作一个普通字符

      • ( )

正则表达式实战

  • 匹配邮箱

    • ^([a-zA-Z0-9_-.+]+)@([a-zA-Z0-9_-.+]+).([a-zA-Z]{2,5})$

分类:

技术点:

相关文章: