2

我想删除大括号,所以“{test}”变成“test”。我试过

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

似乎没有任何效果。

4

4 回答 4

11

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

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

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

"{test}".delete "{}"
于 2012-06-07T07:32:32.530 回答
2

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

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

另一方面,如果您想从开头或手上删除大括号,您也许可以使用基于非正则表达式的方式来完成

于 2012-06-07T07:33:35.460 回答
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"
于 2012-06-07T07:34:02.760 回答
0

尝试使用字符串#tr

> "{test}".tr '{}', ''
#=> "test"
于 2016-06-29T18:50:37.880 回答