文章目录
- 一、基本了解
- 二、基本正则表达式
- 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,默认匹配|的整个左侧或者整个右侧的内容 |