使用regex + gsub从字符串中删除方括号内的文本

时间:2013-03-14 21:41:24

标签: ruby regex

text = "This [is] a [fill]-in-the-[blank]"

我正在寻找正则表达式为我做一些魔术:

new_text = text.gsub(/[magic happens]/, "")

=> "This [] a []-in-the-[]"

我的代码是Ruby,但我敢打赌,这并不重要。

3 个答案:

答案 0 :(得分:6)

这样的事情会起作用:

text = "This [is] a [fill]-in-the-[blank]"
text.gsub(/\[.+?\]/, '[]')
#=> "This [] a []-in-the-[]"

答案 1 :(得分:3)

text = "This [is] a [fill]-in-the-[blank]"

text.gsub(/(?<=\[).+?(?=\])/, "")

text.gsub(/(?<=\[)[^\]]+?(?=\])/, "")

答案 2 :(得分:1)

我使用Rubular对此进行原型设计,给出了测试用例 - &gt; http://rubular.com/r/TgdjOtc4Ru从这里,你可以删除匹配或类似的东西:

[5] pry(main)> text = "This [is] a [fill]-in-the[blank]"
=> "This [is] a [fill]-in-the[blank]"
[6] pry(main)> text.gsub(/\[(\w+)\]/) { |match| "[]" }
=> "This [] a []-in-the[]"

可能有一种更漂亮的方法: - )