我试图解析一个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
如果引用的部分还可以包含未转义的报价,则无法解决您的问题。 –