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

    简述

    正则表达式是什么?

    由一类特殊字符及文本字符所编写的模式,其中有些元字符不表示字符字面意义,而表示控制或统配的功能.当然正则表达式适用于所有语言.

    Linux中支持正则表达式的程序

    grep,sed,awk,vim,less,nginx等

    正则表达式的分类

    基本正则表达式: BRE

    扩展正则表达式: ERE

    基本正则表达式

    字符匹配

    字符 意义
    . 匹配任意字符
    [] 匹配指定范围内的单个字符
    [^] 匹配指定范围外的单个字符
    [:alnum:] 匹配数字和字母
    [:alpha:] 匹配任何英文大小写字符
    [:lower:] 匹配小写字母
    [:upper:] 匹配大写字母
    [:digit:] 匹配十进制数字
    [:xdigit:] 匹配十六进制数字
    [:space:] 匹配水平和垂直的空白字符
    [:blank:] 匹配空白字符(制表符和空白格)
    [:graph:] 匹配可打印的非空白字符
    [:punct:] 匹配标点符号
    [:print:] 匹配可打印字符
    [:cntrl:] 匹配不可打印的控制字符

    匹配次数

    用在指定次数的字符后面,用于指定前面的字符出现的次数.

    字符 意义
    * 匹配前面的字符,任意次包括0次
    .* 匹配前面任意字符任意次数
    ? 匹配前面的字符0次或者1次
    + 匹配前面的字符至少1次
    {n} 匹配前面的字符n次
    {m,n} 匹配前面的字符至少m次,至多n次
    {,n} 匹配前面的字符至少出现n次
    {n,} 匹配前面的字符至多出现n次

    位置锚定

    定位出现的位置

    字符 意义
    ^ 行首锚定,用于模式最左侧
    $ 行尾锚定,用于模式最右侧
    ^PATTERN$ 用于匹配整行
    ^$ 匹配空行
    ^[[:space:]] 匹配空行
    < 或  词首锚定,用于匹配单词模式最左侧
    > 或者  词尾锚定,用于匹配单词模式最右侧
    <PATTERN> 匹配整个单词

    分组

    将一个或者多个字符捆绑在一起,单做一个整体进行处理

    ( )               分组
    1 2               分组的后向引用, 1 2 调用第一个第二个分组匹配的结果,以最左边括号
    如下:
          echo abc cc adc abc dd ace | grep -o "(a.c).*1"
    		 结果: abc cc abc abc
    

      

    扩展正则表达式

    简单来说就是去掉了转移符,是匹配模式更简便直观.

    字符匹配

    字符 意义
    . 任意单个字符
    [] 指定范围的单个字符
    [^] 不在指定范围的字符

    匹配次数

    字符 意义
    * 匹配前面的字符出现任意次数
    ? 匹配前面的字符出现0次或者1次
    + 匹配前面的字符0次或者1次
    {n} 匹配前面的字符出现n次
    {m,n} 匹配前面的字符出现至少m次至多n次

    位置锚定

    字符 意义
    ^ 行首锚定
    $ 行尾锚定
    < 或  词首锚定
    > 或  词尾锚定

    分组

    ()     分组
    1 2  分组后向引用
    

      

  • 相关阅读:
    iOS开发UI篇—懒加载
    iOS开发UI篇—简单的浏览器查看程序
    iOS开发UI篇—transframe属性(形变)
    iOS开发UI基础—手写控件,frame,center和bounds属性
    iOS开发UI篇—Button基础
    Foundation框架—集合
    Foundation框架—字符串
    Foundation框架—结构体
    ios 工程配置统一增加类的前缀(知识点也只能算知识点)
    Runtime 函数 Swizzling 改变OC方法的调度顺序
  • 原文地址:https://www.cnblogs.com/yanshicheng/p/12323782.html
Copyright © 2011-2022 走看看