在正则匹配的时候,有的时候需要匹配一些特殊字符,比如说空格,TAB,标点符号,控制字符,大小写字码,16进制等...如果纯粹是大小写字符的话,
[A-Z] 可以匹配大写字母
[a-z] 可以匹配小写字母
[0-9] 这些可以匹配数字
但像TAB键,空格键,空白符,16进制字母等,就不太好匹配! 好在POSIX有个固定的字符集,可供我们使用:
类型 匹配字符
[[:alnum:]] 数字字符
[[:alpha:]] 字母字符
[[:lower:]] 小写字母字符
[[:print:]] 可显示的字符
[[:blank:]] 空格(space)与定位字符
[[:punct:]] 标点符号字符
[[:cntrl:]] 控制字符
[[:space:]] 空白(whitespace)字符
[[:upper:]] 大写字母字符
[[:digit:]] 数字字符
[[:graph:]] 非空格(nonspace)字符
[[:xdigit:]] 十六进制数字字符
有的时候,我们使用上面的字符集会很方便!
比如:
# 要查询文件列表里面含空格键的,可以这样:
root@linux~# ls | egrep '[[:blank:]]'
# 要查询文件列表里面含连续1-6个大写字符的
root@linux~# ls | egrep '[[:upper:]]{1,6}'
总之,将正则表达式结合POXIS常用字符集,可以使我们工作更方便!