どうも、ちょげ(@chogetarou)です。
文字列(string)の改行を置換する方法を紹介します。
方法

文字列(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)
コメント