我嘗試替換表單{字符串}的字符串,但不知何故它不工作。大括號替換大括號
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