【Ruby】文字列から指定の文字以降を削除する方法

こんにちは!CODE CLUB965のKです!

今回は、Rubyで文字列から指定の文字以降を削除したいときの方法について書こうと思います。

方法としては難しくないので使いたいときの参考にして下さい。

sub!メソッドを使う

細かい解説は後程しますのでまずは方法をさくっと書いておきます。

# 対象の文字列
str = "abcdefghABC123456789"

# ABC以降を削除
str.sub!(/ABC.*/m, "")

上記の例で実行すると、「abcdefgh」が出力されます。
正規表現を使ってマッチした文字列以降を削除する方法です。

sub!メソッド

上記の例で使用したsub!メソッドは、subメソッドに「!」が付いているので、破壊的メソッドとなります。
破壊的メソッドを使うと元となるオブジェクト自体が変更されます。

subメソッド自体は指定した文字列を置換するためのメソッドです。

なので先ほどの例ですと、ABC以降の文字列を「""(空文字)」に置換すると言うことなので、結果としてABC以降の文字が削除されることになります。

最後に

文字列を置換する場合や検索する場合、正規表現を使うことが結構あります。
正規表現がよく分かっていないという方は、最低限の知識は身に付けておきましょう。

正規表現についてはまた別の機会に記事にしたいと思います。

それでは、また!

Follow me!