符号 | 等同于/举例 |
. 表示匹配任意单个字符 | grep "h.l" regex.txt |
* 表示匹配前面的字符任意次,包括0次 | |
[ ] 表示匹配指定范围内的任意单个字符 | |
[^ ] 表示匹配指定范围外的任意单个字符 | [^0-9]与[^[:digit:]]等效 [^a-z]与[^[:lower:]]等效 [^A-Z]与[^[:upper:]]等效 [^a-zA-Z]与[^[:alpha:]]等效 [^a-zA-Z0-9]与[^[:alnum:]]等效 |
[[:alpha:]] 表示任意大小写字母 | [a-zA-Z]与[[:alpha:]]等效 |
[[:lower:]] 表示任意小写字母 | [a-z]与[[:lower:]]等效 |
[[:upper:]] 表示任意大写字母 | [A-Z]与[[:upper:]]等效 |
[[:digit:]] 表示0到9之间的任意单个数字(包括0和9) | [0-9]与[[:digit:]]等效 |
[[:alnum:]] 表示任意数字或字母 | [a-zA-Z0-9]与[[:alnum:]]等效 |
[[:space:]] 表示任意空白字符,包括"空格"、"tab键"等 | |
[[:punct:]] 表示任意标点符号 | |
#简短格式并非所有正则表达式解析器都可以识别 *grep 使用时需要加上-P 选项* | |
\d 表示任意单个0到9的数字 | |
\D 表示任意单个非数字字符 | |
\t 表示匹配单个横向制表符(相当于一个tab键) | |
\s表示匹配单个空白字符,包括"空格","tab制表符"等 | |
\S表示匹配单个非空白字符 | |
举例:
要查询以1个大写字母开头,后边是多个小写字母及任意字符,且包含以1-3个数字开头的行
[root@hy ~]# cat regex.txt
aaa
bbb bb bbbbbb
hello world helloo hello
cccc cccc cccccccddd
cc dd ccc ccccccrrrr
cc ccc cccc
abc abc abcc abcde
ddd dddddddddd dddd2222
Aabc Dabc123 address
Add Address 11.11.11.110
add Don't warry 110
HELLO 1100 !
Hello 1100 !
Add Address 11.11.11.110a
查询以1-3个数字结尾的行