今回はRubyでgsub、gsub!メソッドで文字列を置換する方法を解説します。
gsub
gsubメソッドとは、正規表現により文字列を置換するメソッドです。
正規表現で指定するパターンにマッチした文字列を、指定した文字列に置き換えます。
基本的な書式は以下のようになります。
1 |
str.gsub(patttern,replacement) #(パターン,文字列) |
第一引数のパターンの部分で文字列を指定すると、その文字列に一致した部分が置換されます。
実際に使ってみましょう。
1 2 |
str = "milk _ man _" puts str.gsub(/(_)/,"!!") |
実行結果は以下のようになります。
1 |
milk !! man !! |
このようにパターン・文字列と一致したものが、第二引数で指定した文字列に置き換えられています。
gsub!
gsub!メソッドもgsubメソッドと同じく、正規表現のパターン・文字列を指定して、一致する部分の文字列を置換することができます。
書式はgsubメソッドと変わらず、以下のようになります。
1 |
str.gsub!(patttern,replacement) #(パターン,文字列) |
gsub!メソッドでは、レシーバ自身の文字列を変更します。
実際に違いを見てみましょう。
1 2 3 4 5 6 7 |
str1 = "milk _ man _" str1.gsub!(/(_)/,"!!") puts "str1 :"+ str1 str2 = "milk _ man _" str2.gsub(/(_)/,"!!") puts "str2 :" + str2 |
実行結果は以下のようになります。
1 2 |
str1 :milk !! man !! str2 :milk _ man _ |
このようにgsub!メソッドではレシーバ自身の文字列の置換を行うことができます。