每天三分钟搞定linux shell脚本(57) 正则来了!!!自带的特殊字符正则表达式和星号

自带的特殊字符正则表达式和星号

在这里插入图片描述

1 自带的特殊字符正则表达式

正则表达式引擎中自带了一些特殊字符,这些字符要用到双方括号中去才能生效:

1) [[:alpha:]]   匹配任何字母,无论大小写
2) [[:alnum:]]  匹配任何字母,无论大小写,还匹配数字0~9
3)   [[:blank:]]    匹配空格和制表符
4)   [[:digit:]]      匹配数字0~9
5)   [[:upper:]]    匹配大写字母
6)   [[:lower:]]     匹配小写字母
7) [[:punct:]]    匹配标点符号
8) [[:print:]]      匹配可打印字符

比如输入

echo "123" |sed -n '/[[:digit:]]3/p'

运行后结果为:

123

输入:

echo "123" |sed -n '/[[:alpha:]]4/p'

运行后结果为空

2. 星号

之前认识到点号是匹配一个字符,星号是匹配0次或者多次,表示星号前面的这个字符可以出现0次或者多次。比如有一个文本data4的内容为:

abc
abbc
ac
a

输入

sed -n '/ab*c/p' data4

运行后结果为:

abc
abbc
ac

注意:经常把点号和星号在一块使用,能表示任何数量的任意字符,通常情况下,你知道一句话的两个单词但是不知道两个单词中间是否有其他字符的时候可以这么用,比如输入:

echo "wu lin wai zhuan"|sed -n '/wu.*wai/p'

运行后结果为:

wu lin wai zhuan

当然,星号也能与方括号联合使用,比如输入:

echo "abbbc"|sed -n '/a[a-z]*c/p'

运行结果为:

abbbc

版权声明:本文为weixin_36888250原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。