代码之家  ›  专栏  ›  技术社区  ›  joe

即使匹配bash中的精确值,Regex也不匹配

  •  0
  • joe  · 技术社区  · 3 年前
    echo "Hello World";
    string="v13.2.exe"
    pattern='^v[0-9]*\.[0-9]*\.exe$'
    
    if  [[ $str =~ pattern ]]; then
        echo "found"
    else
        echo "not found"
    fi
    

    总是找不到它。怎么了?

    1 回复  |  直到 3 年前
        1
  •  4
  •   pmf    3 年前

    有一次( $str )您没有使用已定义的变量( $string ).另一个( pattern ),你错过了 $ 标志( $pattern ).试试看

    string="v13.2.exe"
    pattern='^v[0-9]*\.[0-9]*\.exe$'
    
    if  [[ $string =~ $pattern ]]; then
        echo "found"
    else
        echo "not found"
    fi
    
    found
    
    推荐文章