Rubyで文字列を置換する方法:gsub, gsub!

今回はRubyでgsub、gsub!メソッドで文字列を置換する方法を解説します。

gsub

gsubメソッドとは、正規表現により文字列を置換するメソッドです。

正規表現で指定するパターンにマッチした文字列を、指定した文字列に置き換えます。

基本的な書式は以下のようになります。

str.gsub(patttern,replacement) #(パターン,文字列)

第一引数のパターンの部分で文字列を指定すると、その文字列に一致した部分が置換されます。

実際に使ってみましょう。

str = "milk _ man _"
puts str.gsub(/(_)/,"!!")

実行結果は以下のようになります。

milk !! man !!

このようにパターン・文字列と一致したものが、第二引数で指定した文字列に置き換えられています。

gsub!

gsub!メソッドもgsubメソッドと同じく、正規表現のパターン・文字列を指定して、一致する部分の文字列を置換することができます。

書式はgsubメソッドと変わらず、以下のようになります。

str.gsub!(patttern,replacement) #(パターン,文字列)

gsub!メソッドでは、レシーバ自身の文字列を変更します。

実際に違いを見てみましょう。

str1 = "milk _ man _"
str1.gsub!(/(_)/,"!!")
puts "str1 :"+ str1

str2 = "milk _ man _"
str2.gsub(/(_)/,"!!")
puts "str2 :" + str2

実行結果は以下のようになります。

str1 :milk !! man !!
str2 :milk _ man _

このようにgsub!メソッドではレシーバ自身の文字列の置換を行うことができます。



イベント

2017/12/05(火)
Design Thinking Square

購読

平日・毎朝更新中