在bash中,如何检查字符串变量是否与给定的正则表达式匹配?它应该是最快且最便携的(OS X,Linux)方法。
基本上我想要:
if [ $MY_VAR matches '[A-F0-9]{8}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{12}' ]; then
echo 'matched'
fi
答案 0 :(得分:3)
会是,
if [[ $MY_VAR =~ [A-F0-9]{8}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{12} ]]; then
echo 'matched'
fi
为了进行精确的字符串匹配,您需要添加锚点。
$MY_VAR =~ ^[A-F0-9]{8}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{12}$