【发布时间】:2015-09-22 05:34:26
【问题描述】:
在 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
【问题讨论】:
在 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
【问题讨论】:
会的,
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}$
【讨论】: