2012-06-07 72 views
1

我想刪除大括號,以便「{test}」變爲「test」。 我試過在Ruby中刪除大括號

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

沒有什麼似乎工作。

回答

10

你必須使用\1,不$1

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

或者,如果你只是想刪除所有大括號:

"{test}".delete "{}" 
2

我假設你要刪除所有大括號一個給定的陳述。在這種情況下,請儘量

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

在另一方面,如果你想從一開始,或者你也許可以做到這一點使用基於非正則表達式的方式

+1

「{}測試」 GSUB(/ \ {| \} /, '')。 – Naveed

+1

感謝您的指正! – sohaibbbhatti

1

你可以使用delete手取出大括號功能。

  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" 
0

嘗試用String#tr

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