if [[ $1 =~ ^\'*\"*[\d+\w+]+\'*\"*$ ]]
then
echo true
else
echo error
exit 1
fi
这个正则表达式似乎是正确的(用https://regexr.com和其他正则表达式站点验证),但是,脚本将评估为false。知道为什么吗?
对于这个论点,我期待一个如下的行:
Will0w
然而,要匹配,没有运气。
任何帮助,将不胜感激,
谢谢
使用bash:
if [[ $1 =~ ^\'*\"*[[:alnum:]]+\'*\"*$ ]]
then
echo true
else
echo error
exit 1
fi
使用grep的替代解决方案:
if echo $1 | grep -qP "^\'*\"*[\d+\w+]+\'*\"*$"
then
echo true
else
echo error
exit 1
fi