[Ruby]文字列(string)の改行を置換するには?

Ruby

どうも、ちょげ(@chogetarou)です。

文字列(string)の改行を置換する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

文字列(string)の改行を置換する方法は、2つあります。

gsubメソッド

1つは、gsubメソッドを使う方法です。

まず、文字列からgsubメソッドを呼び出します。

そして、gsubメソッドの第1引数に正規表現の改行のパターン、第2引数に置換後の文字列を指定します。。

#text=対象の文字列, replace=置換後の文字列
result = text.gsub(/\r\n|\n/, replace)

上記のgsubメソッドは、呼び出した文字列(string)の改行を第2引数の文字列に置換した文字列を生成します。

もし、新しい文字列を生成せず、呼び出した文字列を変更したい場合は、gsub!メソッドを呼び出します。

#呼び出した文字列を変更
text.gsub!(/\r\n|\n/, replace)

使用例1

text = "Taro\r\nJiro\nSaburo\nSiro\r\nGoro"

result = text.gsub(/\r\n|\n/, ',')

p result
出力:
"Taro,Jiro,Saburo,Siro,Goro"

使用例2

text = "Taro\nJiro\nSaburo\nSiro\nGoro"

text.gsub!(/\r\n|\n/, ',')

puts text
出力:
Taro,Jiro,Saburo,Siro,Goro

trメソッド

もう1つは、trメソッドを使う方法です。

まず、文字列からtrメソッドを呼び出します。

そして、trメソッドの第1引数に改行の文字列、第2引数に置換後の文字列を指定します。。

#text=対象の文字列, replace=置換後の文字列
result = text.tr("\n", replace)

上記のtrメソッドは、呼び出した文字列(string)の改行を第2引数の文字列に置換した文字列を生成します。

もし、新しい文字列を生成せず、呼び出した文字列を変更したい場合は、tr!メソッドを呼び出します。

#呼び出した文字列を変更
text.tr!("\n", replace)

使用例1

text = "Taro\nJiro\nSaburo\nSiro\nGoro"

result = text.tr("\n", ',')

p result
出力:
"Taro,Jiro,Saburo,Siro,Goro"

使用例2

text = "Taro\nJiro\nSaburo\nSiro\nGoro"

text.tr!("\n", ',')

puts text
出力:
Taro,Jiro,Saburo,Siro,Goro

まとめ

文字列(string)の改行を置換する方法は、2つあります。

  • gsubメソッドを使う方法
    result = text.gsub(/\r\n|\n/, replace)
  • array_diff()を使う方法
    result = text.tr("\n", replace)

コメント

タイトルとURLをコピーしました