删除Ruby中的大括号

时间:2012-06-07 07:27:05

标签: ruby regex

我想删除大括号,以便“{test}”成为“test”。 我试过了

"{test}".gsub(/\{(.*)\}/,$1)
while "{test}".gsub!(/(\{).*(\})/,""); end
"{test}".gsub(/\{.*\}/,"")  

似乎没什么用。

4 个答案:

答案 0 :(得分:10)

您必须使用\1,而不是$1

"{test}".gsub /\{(.*)\}/, '\1'

或者,如果您只想删除所有大括号:

"{test}".delete "{}"

答案 1 :(得分:2)

我假设您要删除给定语句中的所有花括号。在这种情况下,请尝试

"{test}".gsub(/\{|\}/, '')   => "test" 

另一方面,如果你想从开头或手上删除花括号,你可以使用非正则表达式的方式来执行它

答案 2 :(得分:1)

您可以使用删除功能。

           static VALUE
rb_str_delete(int argc, VALUE *argv, VALUE str)
{
str = rb_str_dup(str);
rb_str_delete_bang(argc, argv, str);
return str;
 }
        example:
"hello".delete "l" =>"heo"

答案 3 :(得分:0)

尝试 String#tr

> "{test}".tr '{}', ''
#=> "test"