4,3, 正则表达式字符集
字符 | 说明 |
---|---|
[[:alpha:]] | 匹配任意一个字母,等价于[A-Za-z] |
[[:alnum:]] | 匹配任意一个字母或者数字,等价与[A-Za-z0-9] |
[[:digit:]] | 匹配任意一个数字,等价于[0-9] |
[[:lower:]] | 匹配任意一个小写字母,等价于[a-z] |
[[:upper:]] | 匹配任意一个大小写字母,等价于[A-Z] |
[[:space:]] | 匹配任意一个空白符,包括空格,制表符,换行符以及分页符 |
[[:blank:]] | 匹配空格和制表符 |
[[:graph:]] | 匹配任意一个看得见的可打印字符,不包括空白字符 |
[[:print:]] | 匹配任何一个可以打印的字符,包括空白字符,但是不包括控制字符,字符串结束符'\0',EOF文件结束符(-1) |
[[:cntrl:]] | 匹配任何一个控制字符,即ASCII字符集中的前32个字符,如:换行符,制表符等 |
[[:punct:]] | 匹配任何一个标点符号,例如"[]","{}"或者","等 |
[[:xdigit:]] | 匹配十六进制数字,即[0-9a-fA-F] |
示例:
bash
touch easyalee easyAlee "easy lee" "easy@lee" "easy8lee"
rm -fr easy [[: alpha:]]lee
rm -fr easy [[: lower:]]lee
rm -fr easy [[: upper:]]lee
rm -fr easy [[: digit:]]lee
rm -fr easy [[: space:]]lee
rm -fr easy [[: graph:]]lee
[!note]
通配符和正则表达式比较
1.通配符和正则表达式看起来有的像,不能混淆,可以简单理解为通配符只有,*,?,[],{}这4中
2.在通配符和正则表达式中有不一样的,通配符*为匹配0到多个字符,而正则为重复之前的一个或者多个字符,不能单独使用