shell脚本基础3——正则表达式

文章目录

  • 一、基本了解
  • 二、基本正则表达式
    • 2.1 字符匹配
    • 2.2 位置锚定
    • 2.3 匹配次数
    • 2.4 分组
  • 三、扩展正则表达式
    • 3.1 字符匹配
    • 3.2 位置锚定
    • 3.3 匹配次数
    • 3.4 分组
    • 3.5 或者

一、基本了解

  • 正则表达式分2种:基本正则表达式和扩展正则表达式。
  • grep 、sed命令使用正则较多,可以在命令行、脚本中使用进行命令替换和查找。
  • 一般都是使用扩展正则,grep命令指定-E参数使用扩展正则,sed命令只用-r或-E参数使用扩展正则。

二、基本正则表达式

2.1 字符匹配

表达式 释义
点号. 匹配任意单个字符
[],中括号 匹配指定范围内的任意单个字符
[^] ^取反,匹配指定范围外的任意单个字符

1.使用.匹配单个字符,一个点号代表一个字符。

shell脚本基础3——正则表达式_第1张图片

2.使用[]匹配范围内的任意单个字符。

shell脚本基础3——正则表达式_第2张图片
3.[^]匹配范围之外的任意单个字符。

shell脚本基础3——正则表达式_第3张图片

2.2 位置锚定

表达式 释义
^ 锚定行首,此字符后面的任意单个字符必须出现在行首
$ 锚定行尾,此字符前面的任意单个字符必须出现在行尾
^$ 空白行,以什么开头和什么结尾精确匹配
\ <或 \b 锚定词首,其后面的任意单个字符必须作为单词首部出现
\ >或\b 锚定词尾,其前面的任意单个字符必须作为单词尾部出现
\b \b 精确匹配

1.锚定行首。

shell脚本基础3——正则表达式_第4张图片
2.锚定行尾。

shell脚本基础3——正则表达式_第5张图片
3.取文件空白行。

shell脚本基础3——正则表达式_第6张图片
4.锚定词首。

shell脚本基础3——正则表达式_第7张图片
5.锚定词尾。

shell脚本基础3——正则表达式_第8张图片
6.精确匹配。

在这里插入图片描述

2.3 匹配次数

表达式 释义
* 匹配其前面的任意单个字符任意次
.* 任意长度的任意字符(全部)
\? 匹配其前面的任意单个字符1次或0次
\+ 匹配其前面的任意单个字符至少1次
\{m,n\} 匹配其前面的任意单个字符至少m次,至多n次

1.使用*匹配其前面的任意单个字符任意次。
shell脚本基础3——正则表达式_第9张图片
2.使用.*匹配所有内容。
在这里插入图片描述

3.匹配其前面的任意单个字符1次或0次
shell脚本基础3——正则表达式_第10张图片
4.匹配其前面的任意单个字符至少1次
shell脚本基础3——正则表达式_第11张图片

5.匹配其前面的任意单个字符至少m次,至多n次
shell脚本基础3——正则表达式_第12张图片

2.4 分组

表达式 释义
\(\) 把括号当成一个整体
\1 向后引用,引用第一个左括号以及与之对应的右括号所包括的所有内容
\2 向后引用, 引用第二个左括号以及与之对应的右括号所包括的所有内容

1.把括号当成一个整体匹配。

shell脚本基础3——正则表达式_第13张图片

三、扩展正则表达式

3.1 字符匹配

  • 书写格式与普通正则完全一样。
表达式 释义
点号. 匹配任意单个字符
[],中括号 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符

3.2 位置锚定

  • 书写格式与普通正则完全一样。
表达式 释义
^ 锚定行首,此字符后面的任意单个字符必须出现在行首
$ 锚定行尾,此字符前面的任意单个字符必须出现在行尾
^$ 空白行,以什么开头和什么结尾精确匹配
\ <或 \b 锚定词首,其后面的任意单个字符必须作为单词首部出现
\ >或\b 锚定词尾,其前面的任意单个字符必须作为单词尾部出现
\b \b 精确匹配

3.3 匹配次数

表达式 释义
* 匹配其前面的任意单个字符任意次
.* 任意长度的任意字符(全部)
? 匹配其前面的任意单个字符1次或0次
+ 匹配其前面的任意单个字符至少1次
{m,n} 匹配其前面的任意单个字符至少m次,至多n次

1.匹配其前面的任意单个字符1次或0次
shell脚本基础3——正则表达式_第14张图片

2.匹配其前面的任意单个字符至少1次
shell脚本基础3——正则表达式_第15张图片

3.匹配其前面的任意单个字符至少m次,至多n次
shell脚本基础3——正则表达式_第16张图片

3.4 分组

表达式 释义
() 把括号当成一个整体
\1 反向引用,引用第一个左括号以及与之对应的右括号所包括的所有内容
\2 反向引用, 引用第二个左括号以及与之对应的右括号所包括的所有内容

1.反向引用。

shell脚本基础3——正则表达式_第17张图片

3.5 或者

表达式 释义
| 或者or,默认匹配|的整个左侧或者整个右侧的内容

shell脚本基础3——正则表达式_第18张图片

你可能感兴趣的:(shell脚本,正则表达式,linux,运维,自动化)