![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
Windows環境でRuby 1.8.7を使用しております。
----sample1.txt-----
hoge"foo\"bar\"foo"hage"bar\"baz\"bar"hoge
------------------
ファイルから1行ずつテキストを読み込んで処理を行います。上のsample.txtの様な行を読み込んだ場合にダブルクォートで囲まれた部分
foo\"bar\"foo
bar\"baz\"bar
を取り出すのにはどの様な正規表現を用いればよろしいでしょうか?
エスケープされたダブルクォートを除ける上手い方法がわかりません。
また、ダブルクォートで囲まれた部分が複数行にまたがる場合はどの様に処理をすれば良いでしょうか?
-----sample2.txt-----
hoge"foo
\"bar\"
baz"
hage
----------------------
-----sample3.txt-----
hoge"foo
\"ba
r\"baz"
hage
----------------------
最初の例のように1行の場合は
File.foreach(file) do | line | …… end
で良いのですが、複数行の場合には同じように単純には行きません。
ダブルクォートの数を数えて、奇数の場合は偶数になるまで次行をくっつける様な処理を考えているのですが、もっと適切な方法はありますか?
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
前者については
"((?:[^\\"]|\\.)*)"
にマッチさせればいいと思う. 後者は「全体を 1つの文字列にする」のが最も単純ではないでしょうか.
ご回答ありがとうございました。
前者の正規表現はこれで上手くいっているようです。何故上手くいくのか頭を捻る必要がありますが……
後者についてですが、全体をまとめるというのは行いたくないのです。
理由は、巨大なファイルを読むとメモリ不足で落ちることが以前あったということと、同時に他の処理を基本1行ずつで行いたいということからです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# Makefileのechoの展開について 2 2022/07/26 07:35
- その他(プログラミング・Web制作) zshの例外処理 1 2022/06/02 16:36
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- JavaScript javascriptで文字分割は、 split() などメソッド不要??? 4 2023/02/06 22:50
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- PHP PHPを使って、別サイトの一部を取得して表示したいのです。。 1 2023/01/18 21:45
- その他(悩み相談・人生相談) 20の男です。最近お酒飲み始めるようになったのですが、自分らの友達や周りの知人の話を聞いてとても疑問 3 2022/11/03 17:47
- お菓子・スイーツ サーティワンについてで アイスの入れる袋 小、パイント、クォート、中、大、ってそれぞれ何個のシングル 2 2022/09/17 10:51
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Excel(エクセル) エクセルVBA 複数行にまたがっている選択を判定するには 2 2023/05/21 21:54
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチ処理 特定の文字以降を...
-
Access VBA エラー2448について
-
[コンパイルエラー 修飾子が不...
-
フォームのResizeイベントについて
-
キーが重複しているデータの統...
-
分数の計算のプログラミングです。
-
eo(解凍ソフト)をバッチファイ...
-
【ExcelVBA】300万件越えCSVか...
-
VBAでcsvファイルもシートもあ...
-
ダブルコーテーション付きでCSV...
-
ファイル名を変数で書きこむfwr...
-
VBScript等で、CSV内の各文字列...
-
CSVで余計な空行が入る
-
Rubyでバイナリファイルを編集...
-
IPアドレスのゼロパディング
-
fortranでNAのあるデータを読み...
-
シート内容の文字列を置換してV...
-
SQLファイルの読み込み
-
【C#】 csvファイルをバイナリ...
-
バッチファイルでcsvファイルに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理 特定の文字以降を...
-
パイソンでテキストファイルが...
-
VBA テキストボックスを選択状...
-
[コンパイルエラー 修飾子が不...
-
SQLでテキストボックスの文字を...
-
Access VBA エラー2448について
-
verilog HDLについての質問です...
-
teratermで、ファイル名をinput...
-
分数の計算のプログラミングです。
-
バッチ for /f 空白、スペース...
-
MS-DOSバッチファイルコマンド...
-
アスキー変換 と 逆変換について
-
TEXTファイルを日付・時刻で保存。
-
型の値をDataGridViewセルに変換...
-
■PukiWikiの凍結解除方法を教え...
-
ruby テキストファイル書き出し...
-
フォームのResizeイベントについて
-
プログラミングによるオセロゲ...
-
バッチファイル フォルダ名をフ...
-
文字コードを指定して・・
おすすめ情報