bash

时间:2015-09-22 05:34:27

标签: regex bash

在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

1 个答案:

答案 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}$