加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式

发布时间:2020-12-13 21:54:28 所属栏目:百科 来源:网络整理
导读:regular expression 1、正则表达式概述 常用的正则表达式引擎 POSIX基本正则表达式BRE引擎 POSIX扩展正则表达式BRE引擎 正则表达式: 是一类字符所书写出的模式(pattern) 元字符: 不表示字符本身的意义,用于额外功能性描述 基本正则表达式和扩展正则表达

regular expression

1、正则表达式概述

常用的正则表达式引擎
POSIX基本正则表达式BRE引擎
POSIX扩展正则表达式BRE引擎

正则表达式: 是一类字符所书写出的模式(pattern)
元字符: 不表示字符本身的意义,用于额外功能性描述
基本正则表达式和扩展正则表达式

2、基本正则表达式
基本正则表达式的元字符:grep -E
字符匹配:
.: 任意单个字符
[]: 指定范围内的任意单个字符
[0-9],[[:digit:]]
[a-z],[[:lower:]]
[A-Z],[[:upper:]]
[[:alpha:]]
[[:alnum:]]
[[:space:]]
[[:punct:]]
[^]: 指定范围外的任意单个字符 #非#

次数匹配:用来指定匹配其前面的字符的次数
           *: 任意次
              例子: x*y,xxy,xy,y
              .*: 匹配任意长度的任意字符
          ?: 0次或1次
              x?y,y,xxy

    贪婪模式:尽可能的长的去匹配字符;
          {m}:   匹配m次
          {m,n}:
          {m,}:  至少m次
          {0,n}: 至多n次

     锚定:
           ^:开头
           $:结尾 
          ^$: 空白行

          &;: 定位词首
          b: 分别代替词首词尾
          &;: 定位词尾

     分组:
          ()
              (ab)*xy
     引用:
          1: 后向引用,引用前面的第一个左括号以及与之对应的右括号中的模式所匹配到的内容
          2:
          ...

             (a.b)*xy1:  #a6bxya6b

             He like his lover.
             She love her liker.
             He love his lover.
             She like her liker.

             grep '(l..e).*1r' test.txt

3、扩展正则表达式
扩展正则表达式的元字符:
egrep:使用扩展正则表达式来构建模式,相当于grep -E

字符匹配:
           .: 任意单个字符
          []: 指定范围内的任意单个字符
              [0-9],[[:digit:]]
              [a-z],[[:lower:]]
              [A-Z],[[:upper:]]
              [[:alpha:]]
              [[:alnum:]]
              [[:space:]]
              [[:punct:]]
         [^]: 指定范围外的任意单个字符 #非#

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

      锚定:
             ^:行首
             $:行尾 
            ^$: 空白行

            &;,b: 词首

            &;,b: 词尾

      分组:
         (): 分组
         |: 或者,ac|bc

特殊字符[:alnum :] 文字数字 匹配任意字母字符0-9 a-z A-Z[:alpha:] 文字 匹配任意字母,大写或小写[:digit:] 数字 0-9[:graph:] 非空字符( 非空格控制字符)[:lower:] 小写字符[:upper:] 大写字符[:cntrl:] 控制字符[:print:] 非空字符( 包括空格)[:punct:] 标点符号[:blank:] 空格和TAB字符[:xdigit:] 16 进制数字[:space:] 所有空白字符( 新行、空格、制表符)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读