【问题标题】:How do I strip parenthesis from a string in Ruby?如何从Ruby中的字符串中去除括号?
【发布时间】:2011-09-24 15:48:22
【问题描述】:

我有一个字符串,像这样:

"yellow-corn-(corn-on-the-cob)"

我想从字符串中去掉括号,得到这样的结果:

"yellow-corn-corn-on-the-cob"

我相信您会使用 gsub 来完成此操作,但我不确定我需要什么模式来匹配括号。比如:

clean_string = old_string.gsub(PATTERN,"")

【问题讨论】:

    标签: ruby regex string


    【解决方案1】:

    没有正则表达式:

    "yellow-corn-(corn-on-the-cob)".delete('()') #=> "yellow-corn-corn-on-the-cob"
    

    【讨论】:

    • 非常易读,而且方便,您甚至不需要转义括号,这样'[foo]'.delete('[]') 就可以简单地返回'foo' :)
    • +++ 这是一个比所选的 imo 更简单、更贴切的答案。
    【解决方案2】:

    试试这个:

    clean_string = old_string.gsub(/[()]/, "")
    

    附带说明,Rubular 非常适合快速测试您的正则表达式。

    【讨论】:

    • 很好,我很怀疑,但后来尝试了一下,它奏效了。一般来说,()不需要在[]里面转义吗?
    • 通常,在[] 字符类中,唯一不按字面处理的字符是 ]、\、^ 和 -,即使如此,克拉和连字符也只能在位置上(作为第一个字符)。
    • 我做了一个快速测试,看起来你唯一需要逃避的(至少在 ruby​​ 1.9.2 上)是 [, ], / 和 \。
    猜你喜欢
    • 2017-01-27
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 2015-06-10
    • 2012-03-16
    • 2012-02-16
    • 1970-01-01
    相关资源
    最近更新 更多