Regex match a string with spaces (use quotes?) in an if statement
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. #!/bin/bash text="This is just a test string" if [[ "$text" =~ ^This ]]; then echo "matched" else echo "not matched" fi I want to do something like if [[ "$text" =~ "^This is" ]]; then but this doesn't match.
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
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
$pat is unnessesary.
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.
Have you tried:
- Database Administration Tutorials
- Programming Tutorials & IT News
- Linux & DevOps World
- Entertainment & General News
- Games & eSport