如何在正则表达式的末尾转义花括号

时间:2011-07-28 18:19:44

标签: regex bash posix-ere

我有以下bash脚本来替换花括号的括号。

VARS=${VARS//(/{}
VARS=${VARS//)/}}

第一行正常,但第二行只会在最后添加花括号。

如果我试图用反斜杠转义大括号,则反斜杠本身会存储在变量中。

是否有不同的方法可以从字符串中转义这些花括号?

2 个答案:

答案 0 :(得分:1)

你必须引用第一个},以便bash不认为这是表达式的结尾:

VARS=${VARS//)/\}}

答案 1 :(得分:1)

这是另一种方法:

VARS=`echo ${VARS} | tr '()' '{}'`

虽然看起来好像用反斜杠转义大括号是有效的,但这就是我用的:

VARS=${VARS//(/{}
VARS=${VARS//)/\}}