String#delete忽略特殊字符

时间:2012-11-09 08:47:31

标签: ruby

String#deletea-z解释为字符范围。但是,我希望删除fa-zo

"fojwfa-zowj".delete("fa-zo") #=> "-"

期望的结果:

"fojwwj"

3 个答案:

答案 0 :(得分:3)

你也可以使用这个小技巧:

string = "fojwfa-zowj"

string[/fa-zo/] = ''

string
# => "fojwwj"

但是请注意,这会修改像#gsub!这样的字符串,它应该更快并且应该使用更少的内存,但如果考虑不好则可能会引入副作用。

答案 1 :(得分:2)

"fojwfa-zowj".gsub("fa-zo","")  # => "fojwwj"

答案 2 :(得分:2)

"fojwfa-zowj".tap{ |s| s.slice! "fa-zo" } # just for the Heaven of it