从字符串中删除Array中的短语

Lin*_*nus 2 ruby ruby-on-rails-3

我需要从Ruby中的字符串中删除一些短语.短语在数组中定义.它可能看起来像这样:

remove = ["Test", "Another One", "Something Else"]
Run Code Online (Sandbox Code Playgroud)

然后我想检查并从给定的字符串中删除它们.

"这是一个测试"=>"这是一个""这是另一个"=>"这是""这是另外两个"=>"这是另外两个"

使用Ruby 1.9.3和Rail 3.2.6.

mog*_*rod 5

ary = ["Test", "Another One", "Something Else", "(RegExp i\s escaped)"]
string.gsub(Regexp.union(ary), '')
Run Code Online (Sandbox Code Playgroud)

Regexp.union 可用于将字符串数组(或正则表达式)编译为单个正则表达式,因此只需要单个搜索和替换.

Regexp.union ['string', /regexp?/i] #=> /string|(?i-mx:regexp?)/
Run Code Online (Sandbox Code Playgroud)