パターンに一致する文字を削除する

Ruby:
パターンに一致する文字を削除する

How to: (やり方)

# gsubメソッドを使う例
str = "Hello, 123 World!"
clean_str = str.gsub(/[0-9]/, '')
puts clean_str  # => "Hello,  World!"

# deleteメソッドを使う例
str = "foobar123"
clean_str = str.delete('0-9')
puts clean_str  # => "foobar"

# 変数を使って削除パターンを指定することもできます
digits_to_remove = "0123456789"
str = "This is 2023!"
clean_str = str.delete(digits_to_remove)
puts clean_str  # => "This is !"

Deep Dive (掘り下げ)

パターンマッチと文字の削除は、テキスト処理の世界では古くから行われています。正規表現 (Regular Expressions) が普及すると、それはさらに強力なツールとなりました。Rubyのgsubメソッドは、文字列中のパターンにマッチする部分を置き換えまたは削除するために広く使われています。このメソッドは、非常に汎用的であり、複雑なパターンでも扱うことが可能です。

一方で、deleteメソッドは、単純な文字範囲や個別の文字を削除する際にはより直接的で、速い方法を提供します。gsubよりも高速に動作する場面が多く、文字列内の特定の文字セットを素早く取り除く場合に便利です。

どちらを使うかは、目的とする文字列の処理によって異なります。gsubで複雑な検索置換を行い、deleteで簡単な文字削除を行うのが一般的です。

See Also (関連情報)