Home > Blockchain >  Regex is not matching even though match exact value in bash
Regex is not matching even though match exact value in bash

Time:02-16

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

it always print not found. what is wrong

CodePudding user response:

In one case ($str) you are not using the variable you have defined ($string). In the other (pattern), you're missing the $ sign ($pattern). Try

string="v13.2.exe"
pattern='^v[0-9]*\.[0-9]*\.exe$'

if  [[ $string =~ $pattern ]]; then
    echo "found"
else
    echo "not found"
fi
found
  • Related