0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

正規表現でCSVテキストの最終行を削除する

Last updated at Posted at 2021-04-06

CSVテキストの最終行を削除しようと思った時に結構てこづったのでその方法をメモしておきます。

やりたいこと

↓の最後に出現する改行以降を削除したい。

csv_text = <<~CSV_TEXT
  りんご,apple
  みかん,orange
  イチゴ,strawberry
  バナナ,banana #この行を削除したい
CSV_TEXT

正規表現で最終行を削除

gsubを使って最終行を削除します。

csv_text = <<~CSV_TEXT
  りんご,apple
  みかん,orange
  イチゴ,strawberry
  バナナ,banana #この行を削除したい
CSV_TEXT

csv_text.gsub(/(\r\n|\r|\n).*\z/, '')

#=> りんご,apple
#=> みかん,orange
#=> イチゴ,strawberry

どの改行コードがきてもいいように (\r\n|\r|\n) で改行コードを指定します。
\zはファイルの末尾にマッチするので、これで最後の行のみを削除することができます。
ちなみに末尾表現としてよく使われる$は行の末尾にマッチするので、これを使うとみかん,orange以下の行が全て削除されてしまうので注意です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?