Jam*_*own 1 regex variables bash replace
我试图使用Bash替换来替换变量中的整个字符串,如果它匹配模式.例如:
pattern="ABCD"
${var/pattern/}
Run Code Online (Sandbox Code Playgroud)
删除(有没有替换)的第一次出现$pattern在$var
${var#pattern}
Run Code Online (Sandbox Code Playgroud)
$pattern在开头删除$var
但是,我怎么能删除正则表达式模式"^ABCD$"的$var?我可以:
if [ $var == "ABCD" ] ; then
echo "This is a match." # or whatever replacement
fi
Run Code Online (Sandbox Code Playgroud)
但这正是我正在寻找的.
您可以进行正则表达式检查:
pattern="^ABCD$"
[[ "$var" =~ $pattern ]] && var=""
Run Code Online (Sandbox Code Playgroud)
它检查中$var定义的正则表达式$pattern.如果匹配,则执行命令var="".
$ pattern="^ABCD$"
$ var="ABCD"
$ [[ "$var" =~ $pattern ]] && echo "yes"
yes
$ var="1ABCD"
$ [[ "$var" =~ $pattern ]] && echo "yes"
$
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅检查字符串是否与BASH Shell脚本中的正则表达式匹配.