Ruby の文字列からいくつかのフレーズを削除する必要があります。句は配列内で定義されます。次のようになります。
remove = ["Test", "Another One", "Something Else"]
次に、特定の文字列からこれらをチェックして削除したいと思います。
「これはテストです」 => 「これは」 「これは別の 1 つです」 => 「これは」 「これは別の 2 つです」 => 「これは別の 2 つです」
Ruby 1.9.3 と Rail 3.2.6 を使用。
Ruby の文字列からいくつかのフレーズを削除する必要があります。句は配列内で定義されます。次のようになります。
remove = ["Test", "Another One", "Something Else"]
次に、特定の文字列からこれらをチェックして削除したいと思います。
「これはテストです」 => 「これは」 「これは別の 1 つです」 => 「これは」 「これは別の 2 つです」 => 「これは別の 2 つです」
Ruby 1.9.3 と Rail 3.2.6 を使用。
ary = ["Test", "Another One", "Something Else", "(RegExp i\s escaped)"]
string.gsub(Regexp.union(ary), '')
Regexp.union文字列(または正規表現)の配列を単一の正規表現にコンパイルするために使用できるため、単一の検索と置換のみが必要です。
Regexp.union ['string', /regexp?/i] #=> /string|(?i-mx:regexp?)/
最も単純な (ただし、最も効率的ではありません):
# Non-mutating
cleaned = str
remove.each{ |s| cleaned = cleaned.gsub(s,'') }
# Mutating
remove.each{ |s| str.gsub!(s,'') }
より効率的 (ただし明確ではありません):
# Non-mutating
cleaned = str.gsub(Regexp.union(remove), '')
# Mutating
str.gsub!(Regexp.union(remove), '')