正则表达式 – 只允许一些grep字符?

我想检查一个字符串,所以它只包含字符0-9 a-z – .

当我做

regex='[-a-z0-9]*'
string='abcd!'
if [[ $string =~ $regex ]]
then 
    echo "valid"
else
    echo "not valid"
fi

输出有效,我希望无效,因为$string包含!

解决方法:

试试这个:regex =’^ [ – a-z0-9] * $’.它将强制整行与此类匹配.否则,只有一个匹配或根本没有匹配(由于*)将返回有效. ^ … $表示字符串的开始和结束没有任何匹配的东西.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...