How would I do a regex match as shown below but with quotes around the (\"^This\") as in the real world \"This\" will be a string that can have spaces in it.
#!/
You can use \
before spaces.
#!/bin/bash
text="This is just a test string"
if [[ "$text" =~ ^This\ is\ just ]]; then
echo "matched"
else
echo "not matched"
fi
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.
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 $?
Have you tried:
^[\s]*This