gsubメソッドで空白文字列を削除する

Rubyのgsubメソッドに関するメモです。

改行、空白の削除

"This train will be stopping at Fuse, Tsuruhashi, Osaka Uehonmachi, and Nipponbashi. \r\n\r\nthank you for taking the kintetsu rail way. this train is bound for Osaka Namba. This train will be stopping at Gakuenmae, Ikoma, Ishikiri, Fuse, Tsuruhashi, Osaka Uehonmachi, and Nipponbashi. \r\n\r\n\r\nThank you for taking the kintetsu rail way. "

こんなテキストがあります。\rはreturn、\nは改行文字を表している。

このテキストをtと置いて、空白を無くした形で文字列を取得したいときRubyのString#gsubメソッドが使える。

t.gsub(/\r\n|\r|\n/, "")

# => "This train will be stopping at Fuse, Tsuruhashi, Osaka Uehonmachi, and Nipponbashi. thank you for taking the kintetsu rail way. this train is bound for Osaka Namba. This train will be stopping at Fuse, Tsuruhashi, Osaka Uehonmachi, and Nipponbashi. Thank you for taking the kintetsu rail way. "

正規表現についてはこちらがわかりやすかった。 https://www.megasoft.co.jp/mifes/seiki/meta.html

もし文字列がArrayに入っていたら、Arrayに対して直接gsubメソッドは使えません。はい、みなさんお分かりですね

arr = [id: 1, name: "譜久村聖", description: "みなさんこんばんぽん\n\n出席番号1番\n好きなカレーのトッピングは、エビ!\nモーニング娘。'20の譜久村聖です。\nモーニング娘。'20のモーニング女学院そろそろ下校のお時間となりました"]

arr.pluck('description')
# => ["みなさんこんばんぽん!\n\n出席番号1番、\n好きなカレーのトッピングは、エビ!\nモーニング娘。'20の譜久村聖です。\nモーニング娘。'20のモーニング女学院そろそろ下校のお時間となりました"]

arr.pluck('description').map { |n| n.gsub(/\n/, "")}
# => ["みなさんこんばんぽん!出席番号1番、好きなカレーのトッピングは、エビ!モーニング娘。'20の譜久村聖です。モーニング娘。'20のモーニング女学院そろそろ下校のお時間となりました"]

この例では\nの改行文字しか出てませんが、タブ文字を表す\t、空白文字(半角スペース、\t、\n、\r、\f)を表す\sなども使う場面がありそうです。

また、\r\n\r\nの違いがよく分かっておらず、「要するに空白」という雑な解釈をしているのですが、stack over flowで調べてみるとOS間の違いという回答がありました。