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

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

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

第一行工作正常,但第二行只会在末尾添加大括号。

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

有没有不同的方法来从字符串中脱离这些花括号?


这是另一种方法:

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

虽然它似乎逃避了反斜杠工作的大括号,下面是我正在使用的:

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

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

VARS=${VARS//)/}}
链接地址: http://www.djcxy.com/p/97059.html

上一篇: How can I escape curly braces at the end of a regular expression

下一篇: Why does this go into an infinite loop?