【问题标题】:How can I escape curly braces at the end of a regular expression如何在正则表达式末尾转义大括号
【发布时间】:2011-10-15 09:04:32
【问题描述】:

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

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

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

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

有没有其他方法可以将这些花括号从字符串中转义?

【问题讨论】:

    标签: regex bash posix-ere


    【解决方案1】:

    这是另一种方法:

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

    虽然看起来用反斜杠转义大括号是可行的,但这是我使用的:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-12
        • 1970-01-01
        • 1970-01-01
        • 2023-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多