【问题标题】:Regular expression match in bash [duplicate]bash中的正则表达式匹配[重复]
【发布时间】: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

【问题讨论】:

    标签: regex bash


    【解决方案1】:

    会的,

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

    【讨论】:

      猜你喜欢
      • 2018-08-07
      • 1970-01-01
      • 1970-01-01
      • 2016-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-24
      • 1970-01-01
      相关资源
      最近更新 更多