Regex match a string with spaces (use quotes?) in an if statement Regex match a string with spaces (use quotes?) in an if statement bash bash

Regex match a string with spaces (use quotes?) in an if statement


You can use \ before spaces.

#!/bin/bashtext="This is just a test string"if [[ "$text" =~ ^This\ is\ just ]]; then  echo "matched"else  echo "not matched"fi


I did not manage to inline the expression like this:

if [[ "$text" =~ "^ *This " ]]; then

but if you put the expression in a variable you could use normal regex syntax like this:

pat="^ *This "if [[ $text =~ $pat ]]; then

Note that the quoting on $text and $pat is unnessesary.

Edit:A convinient oneliner during the development:

pat="^ *This is "; [[ "   This is just a test string" =~ $pat ]]; echo $?


can you make your problem description clearer?

text="This is just a test string"case "$text" in    "This is"*) echo "match";;esac

the above assume you want to match "This is" at exactly start of line.