如何使用正则表达式匹配双引号内的多行?

时间:2017-02-15 09:16:49

标签: java regex

我有CSV文件,其中包含以下行。

INPUT:

No,NAme,ID,Description
1,Stack,232,"ABCDEFGHIJKLMNO \n -- Jiuaslkm asdasdasd"
2,Queue,454,"PQRSTUVWXYZ \n -- Other \n  words here"
3,Que,4343,"sdfwerrew"

输出预期:

No,NAme,ID,Description
1,Stack,232,"ABCDEFGHIJKLMNO -- Jiuaslkm asdasdasd"
2,Queue,454,"PQRSTUVWXYZ -- Other  words here"
3,Que,4343,"sdfwerrew"

<div>

是否有任何java正则表达式模式可用于查找和合并基于起始双引号和结束引号的行?

1 个答案:

答案 0 :(得分:3)

你走错了路。并非一切都应该使用正则表达式来解决。 CSV解析就是其中之一。

说真的:你即将重新发明轮子。而你即将创造的车轮将会出现缺陷,并且容易一次又一次地打破。

理智方法:Java中有许多现有的CSV解析器。它们完美地处理多线值。所以:使用其中一个(参见here作为你有很多选择的起点)

有一个很好的经验法则:当你的正则表达式变得如此复杂以至于不能自己写下来时;然后考虑做不同的事情。您是拥有此代码的人;你将不得不维护并可能增强它 - 而不是那些能够写下正则表达式来解决这个一个类型的CSV示例输入的人。