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

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

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

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

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

4

3 回答 3

6

像这样的东西会起作用:

text = "This [is] a [fill]-in-the-[blank]"
text.gsub(/\[.+?\]/, '[]')
#=> "This [] a []-in-the-[]"
于 2013-03-14T21:44:42.250 回答
3
text = "This [is] a [fill]-in-the-[blank]"

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

或者

text.gsub(/(?<=\[)[^\]]+?(?=\])/, "")
于 2013-03-14T21:44:28.573 回答
2

鉴于您的测试用例-> http://rubular.com/r/TgdjOtc4Ru从这里,您可以删除匹配项或类似内容,我使用Rubular 对此进行了原型设计:

[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[]"

可能有一种更漂亮的方法来做到这一点:-)

于 2013-03-14T21:51:30.273 回答