| 字符 | 定义 | 列举 |
|---|---|---|
| ^ | 行首定位符 | ^love :以love开始的行 |
| $ | 行尾定位符 | love$ :以love结尾的行 |
| . | 匹配单个字符 | l…e |
| * | 匹配前导符 0~多次 | ab*love |
| .* | 任意字符出现 0~多次 | |
| [] | 匹配指定范围内的一个字符 | [Ll]ove |
| [ - ] | 匹配指定范围内的一个字符 | [0-9a-z]ove |
| [^ ] | 匹配不再指定组内的字符 | [^0-9]ove |
| 转义 | love. | |
| < | 词首定位符 | |
| > | 词尾定位符 | love> :love结尾的词 |
| (…) | 匹配稍后使用的字符的标签 | vim中使用 :% s/172.16.130.1/172.16.130.5/ :% s/(172.16.130).1/15/ |
| x{m} | 字符x重复出现m次 | o{5} |
| x{m,} | 字符x重复出现m次以上 | o{5,} |
| x{m,n} | 字符x重复出现m次到n次 | o{5,n} |
部分命令解释
## 由于 < > ( ) { } 都不是元字符,所有都添加上了转义符号来给符号赋予特殊含义
# vim中 1.txt
172.16.130.1
172.16.130.2
:% s/172.16.130.1/172.16.130.3/
## 执行后将替换字符172.16.130.1为172.16.130.3
:% s/(172.16.130).3/1.1/
## 执行后将替换字符172.16.130.1为172.16.130.3
扩展正则表达式元字符
egrep支持扩展元字符,grep 不直接支持扩展元字符 可用grep -e
| 字符 | 定义 | 列举 |
|---|---|---|
| + | 匹配一个或多个前导字符 | [a-z]+ove |
| ? | 匹配0个或者一个前导字符 | lo?ve |
| a|b | 匹配a或b | love|hate |
| () | 组字符 | loveable|rs love(able|rs)ov+ ov+ (ov)+ |
| (…)(…)12 | 标签匹配字符 | (love)able1er |
| x{m} | 字符x重复m次 | |
| x{m,} | ||
| x{m,n} |
例子
[root@node-1 mytemp]# ss -an|egrep ":80>|:5888>" tcp LISTEN 0 128 :::5888 :::* [root@node-1 mytemp]# ss -an|egrep "(:80>)|(:5888>)" tcp LISTEN 0 128 :::5888 eg:vim中 /love/ 匹配love /^love/ 匹配以love开始的行 /love$/ 匹配以love结束的行 /l.ve/ 匹配 l[任意一个字符]ve /.*/ 匹配任意一行 /^$/ 匹配空行 /^[ t]*$/ 匹配0个或者多个空格或者tab



