CSVデータを正規表現で抜き出せません・・・。
お疲れ様です。初投稿になります。
どうぞ宜しくお願い致します。
CVSデータ(囲い文字:"(ダブルコーテーション))を正規表現でマッチングさせ、抜き出そうと考えています。
エスケープ文字を以下のように設定しています。
・""(ダブルコーテーション * 2) ⇒ "(ダブルコーテーション)
・\"(円記号 + ダブルコーテーション) ⇒ "(ダブルコーテーション)
・\\(円記号 * 2) ⇒ \(円記号)
例えば・・・
"A",""",BB,"",\",CC,\\,DD""","EEEE","",
ですと、「"A"」「""",BB,"",\",CC,\\,DD"""」「"EEEE"」「""」と取れる想定になります。
特に2番目の「""",BB,"",\",CC,\\,DD"""」は、
「"""(←escape),BB,""(←escape),\"(←escape),CC,\\(←escape),DD""(←escape)"」
という想定です。
PHP関数ではエスケープ文字の問題により取得しきれず、自力での取得を行っております。
私が考えた正規表現は「"[^"]*((""|\\")[^"]*)*[^\\]",|"",」となりますが、カンマが入り乱れる上記パターンを満たすことができません。
これは、正規表現での解決は不可能でしょうか?
何日も解決できず、困っています・・・。
是非、皆様のお力添えのほど、宜しくお願い致します。
PS.
このサイトで動作確認を行っておりました。
参考になれば幸いです。
http://www.rider-n.sakura.ne.jp/regexp/regexp.php
お礼
早速のご返事ありがとうございます。 非常に参考になりました。 大変ありがとうございました。