我試圖解析一個csv文件。 這是一個在線正則表達式的網頁,但最終必須在C#中實現。 (如在評論的一些問題反應)將CSV行與分號和引號內的引號進行匹配
我讀了很多在這裏上的其他articels的呆着, 但即時通訊卡在解決它弄明白。
我爲我的正則表達式測試線看起來像這樣(UPDATE:報價逃脫的內部引號的字符串):
;; 「test123; weiterer文本」 ;; 「測試麻省理工學院的」 賊臣IM Spaltenwert「;nächste Spalte MIT 「Begrenzungszeichen;」 4711 「; irgendwas 123,4; 1222;」 foo 「的測試」
;;"test123;weiterer Text";;"Test mit "" Zeichen im Spaltenwert";nächste Spalte mit "" Begrenzungszeichen;"4711";irgendwas 123,4;1222;"foo""test"
- ;是分隔符
- 「是引用列 符號
問題:
- 行可能包含空列(分號後面分號 沒有任何文字)
- 引用的字符串可能包含引號的跡象,像這裏 「Test mit」Zeichen im Spaltenwert「
- 列分隔符也可能出現在帶引號的字符串中,如下所示:」test123; weiterer Text「
什麼我有幾個谷歌搜索迄今所做的和我的正則表達式的有限的理解是這樣的表達
(? < =^|)(\ 「\」。| [^] *)| [^] +
這得到以下結果
[0] =>
[1] =>
[2] => "test123
[3] => weiterer Text"
[4] =>
[5] => "Test mit " Zeichen im Spaltenwert"
[6] => nächste Spalte mit " Begrenzungszeichen
[7] => "4711"
[8] => irgendwas 123,4
[9] => 1222
[10] => "foo"test"
與 https://www.myregextester.com/
問題測試現在我已經是在元件2和3本文
"test123;weiterer Text"
必須是一列,但在引用字符串內的分號被splited,但我想我告訴EXPRES以匹配引號內的所有內容。
任何幫助這裏是高度讚賞。 在此先感謝。
你是什麼意思「什麼是你的正則表達風味」?我不明白。使用csv解析器可能是將來的一個選項,但目前不是因爲現有的實現,我必須解決這個問題。 – Dom84
Curerntly與提到的URL下的工具,myregextester.com 但最終與C# – Dom84
如果引用的部分還可以包含未轉義的報價,則無法解決您的問題。 –