正则expression式在if语句中用空格匹配一个string(用引号?)

我将如何做一个正则expression式匹配,如下所示,但与(“^这个”)引号,如在现实世界中“这个”将是一个string,它可以有空格。

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

我想要做类似的事情

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

但是这不符合。

Solutions Collecting From Web of "正则expression式在if语句中用空格匹配一个string(用引号?)"

您可以在空格之前使用\

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

我没有设法像这样内联表达式:

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

但如果你把表达式放在一个变量中,你可以使用像这样的普通的正则表达式语法:

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

请注意$text$pat的引用是不明智的。

编辑:在开发过程中一个方便的线程:

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

你能否让你的问题描述更清楚?

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

上面假设你想匹配“这是”在行的开始。

你有没有尝试过:

 ^[\s]*This