文章目录
- 一、基本了解
- 二、基本正则表达式
- 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.使用.匹配单个字符,一个点号代表一个字符。

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

3.[^]匹配范围之外的任意单个字符。

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

2.锚定行尾。

3.取文件空白行。

4.锚定词首。

5.锚定词尾。

6.精确匹配。

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

2.使用.*匹配所有内容。

3.匹配其前面的任意单个字符1次或0次

4.匹配其前面的任意单个字符至少1次

5.匹配其前面的任意单个字符至少m次,至多n次

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

三、扩展正则表达式
3.1 字符匹配
- 书写格式与普通正则完全一样。
| 表达式 | 释义 |
|---|---|
| 点号. | 匹配任意单个字符 |
| [],中括号 | 匹配指定范围内的任意单个字符 |
| [^] | 匹配指定范围外的任意单个字符 |
3.2 位置锚定
- 书写格式与普通正则完全一样。
| 表达式 | 释义 |
|---|---|
| ^ | 锚定行首,此字符后面的任意单个字符必须出现在行首 |
| $ | 锚定行尾,此字符前面的任意单个字符必须出现在行尾 |
| ^$ | 空白行,以什么开头和什么结尾精确匹配 |
| \ <或 \b | 锚定词首,其后面的任意单个字符必须作为单词首部出现 |
| \ >或\b | 锚定词尾,其前面的任意单个字符必须作为单词尾部出现 |
| \b \b | 精确匹配 |
3.3 匹配次数
| 表达式 | 释义 |
|---|---|
| * | 匹配其前面的任意单个字符任意次 |
| .* | 任意长度的任意字符(全部) |
| ? | 匹配其前面的任意单个字符1次或0次 |
| + | 匹配其前面的任意单个字符至少1次 |
| {m,n} | 匹配其前面的任意单个字符至少m次,至多n次 |
1.匹配其前面的任意单个字符1次或0次

2.匹配其前面的任意单个字符至少1次

3.匹配其前面的任意单个字符至少m次,至多n次

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

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



















