第五天:正则表达式

发布时间 2024-01-10 20:09:46作者: djyhello

一、基本正则表达式

 1、字符匹配

    . 匹配任意单个字符,可以是一个汉字 " \."
    [] 匹配指定范围的任意单个字符 [0-9] [a-z]
    [^] 匹配指定范围外的任意单个字符 [^djy]
    [:alnum:] 字母和数字
    [:alpha:] 代表任何英文大小写字符
    [:lower:] 小写字母
    [:upper:] 大写字母
    [:blank:] 空白字符
    [:space:] 包括空格、制表符、换行符、回车等各种类型的空白
    [:cntrl:] 不可打印的控制字符
    [:digit:] 十进制数字
    [:xdigit:] 十六进制数字
    [:graph:] 可打印的非空白字符
    [:print:] 可打印字符
    [:punct:] 标点符号
2、匹配次数
    * 匹配前面的字符任意次,包括0次,
    .* 任意长度的任意字段
    \? 前面的字段出现0或1次
    \+ 匹配其前面的字符至少1次
    \{n\} 匹配所有的字符n次
    \{m,n\} 匹配前面的字符至少N次
    \{,n\} 匹配前面的字符至多n次
    \{n,\} 匹配前面的字符至少n次
3、位置锚定
    ^ 行首
    $ 行尾巴
    ^PATTERN$ 用于模式匹配整行
    ^$ 空行
    ^[[:space:]]*$ 空白行
    \< 或\b 词首锚定,用于单词模式的左侧
    \> 或\b 词尾锚定,用于单词模式的右侧
    \<pattern\> 匹配整个单词
    \w 匹配单词构成部分,
    \W 匹配非单词构成部分
4、分组其它
  (1)将多个字符绑定在一起,当作一个整体处理
    grep "(abc)\{3\}"
  (2)或者: \|          a\|b   a或者b
  

二、扩展基本表达式

 1、字符匹配

  .  任意单个字符

  【wang】 指定范围的字符

  [^wang]  不在指定范围内的字符

    [:alpha:] 代表任何英文大小写字符
    [:lower:] 小写字母
    [:upper:] 大写字母
    [:blank:] 空白字符
    [:space:] 包括空格、制表符、换行符、回车等各种类型的空白
    [:cntrl:] 不可打印的控制字符
    [:digit:] 十进制数字
    [:xdigit:] 十六进制数字
    [:graph:] 可打印的非空白字符
    [:print:] 可打印字符
    [:punct:] 标点符号

2、次数匹配

  * 匹配前面字符任意次

  ?0或1次

  + 1次或多次

  {n}匹配已n次

  {m,n} 至少m,至多n次

3、位置锚定

  ^   行首

  $  行尾

  \<  ,  \b  语首

  \>  , \b  语尾

4、

  ()分组

  |  或者

  a|b  a或b

  C|cat  C或cat

  (C|c)at  Cat 或cat