我尝试替换表单{字符串}的字符串,但不知何故它不工作。大括号替换大括号
regex='\{\w*\}'
pattern="{test}_test1"
while [[ $pattern =~ $regex ]]; do
toreplace=${BASH_REMATCH[@]}
pattern=${pattern/toreplace/replaced}
done
echo $pattern
我想除了以下的输出:
replaced_test1
我尝试替换表单{字符串}的字符串,但不知何故它不工作。大括号替换大括号
regex='\{\w*\}'
pattern="{test}_test1"
while [[ $pattern =~ $regex ]]; do
toreplace=${BASH_REMATCH[@]}
pattern=${pattern/toreplace/replaced}
done
echo $pattern
我想除了以下的输出:
replaced_test1
你缺少一个 “$” 和qutoes认可,改变它所以它看起来更像这样: pattern="${pattern/$toreplace/replaced}"
它会工作得很好,经过测试o n GNU bash,版本3.2.52
谢谢,也来自@Nahuel Fouilleil的作品 pattern = $ {pattern/$ {toreplace}/replaced} – papanito
\ W是不是bash的正则表达式
regex='\{[[:alpha:]]*\}'
pattern="{test}_test1"
while [[ $pattern =~ $regex ]]; do
toreplace=${BASH_REMATCH[0]}
pattern=${pattern/${toreplace}/replaced}
done
echo $pattern
那些是“大括号”。尖括号是用于HTML/XML的。 – Lix
\ w不被bash正则表达式识别 –
@Lix更新标题 – papanito