下面介绍shell中正则表达式的两种使用方法。
使用方法一:
#赋值给变量var
read var
#定义regex正则表达式
regex="[0-9]"
if [[ $var =~ $regex]];then
#match
#do something
fi
例如,对输入的内容进行匹配,要求必须是0-9之间的数字:
#读取输入
read input
regex="[0-9]"
if [[ $input =~ $regex ]];then
echo "match"
else
echo "dismatch"
fi
对于方法一,如果正则表达式中含有类似“\d”等转义字符时,是无法匹配。这样就要用到第二种方法了。
使用方法二:
read var
regex="[a-z]"
if [ `echo $var | grep -P $regex` ];then
echo "match"
else
echo "dismatch"
fi
注意:
-P参数:
使用Perl的正则表达式解析。