Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用regex删除报价_Java_Regex - Fatal编程技术网

Java 使用regex删除报价

Java 使用regex删除报价,java,regex,Java,Regex,我看到了一个问题,但我不能适应我的问题 我只想从CSV行中删除封闭字段“,如: " kkl ";"aa bb D";;12 "AA";;"SSS"-;" gg 12";" vv";"sdqs "; 预期结果: kkl ;aa bb D;;12 "AA";;"SSS"-; gg 12; vv;sdqs ; 我使用Pattern和Matcher工具此解决方案假设在引用的字符串中没有转义引号\“ .replaceAll("(?<=^|;)\"([^\"]*?)\"(?=;|$)", "$1

我看到了一个问题,但我不能适应我的问题

我只想从CSV行中删除封闭字段
,如:

" kkl ";"aa bb D";;12 "AA";;"SSS"-;" gg 12";" vv";"sdqs ";
预期结果:

 kkl ;aa bb D;;12 "AA";;"SSS"-; gg 12; vv;sdqs ;

我使用Pattern和Matcher工具

此解决方案假设在引用的字符串中没有转义引号
\“

.replaceAll("(?<=^|;)\"([^\"]*?)\"(?=;|$)", "$1")

对@NHAHDH的正则表达式进行小修改,以防止其在CSV边界之外贪婪地匹配:

.replaceAll("(?<=^|;)\"([^;]*)\"(?=;|$)", "$1");

.replaceAll((?好主意,但结果:kkl;aa bb D;;12“aa”;SSS“-;“gg 12;vv;“sdqs”->)SSS附近仍然存在问题(cote是文本的一部分,而不是分隔符)最后一个字段,@cl-r:你对引号内的字符串有什么假设吗?例如,引号内的字符串是否有转义引号?引号内的字符串是否有
。@nhahtdk我收到了一些CSV,字段内有注释文本,如:新的“modelUpper”现在是“downOne”,并且..-分隔符是“;”和字段分隔符是“(double cote)-我明白了吗?@cl-r:问题是,如果不对输入进行假设,我的解决方案或Jon Lin的解决方案都不会起作用。他的解决方案假设
不会出现在带引号的字符串中。我的解决方案假设
永远不会出现在带引号的字符串中,@cl-r nhahtdh是对的,因为CSV分隔符位于元素中,所以通常会有引号。因此,它可能适用于您的示例,但实际上并不适用。您最好使用CSV解析器,当您请求元素时,这些解析器将去掉引号。
.replaceAll("(?<=^|;)\"([^;]*)\"(?=;|$)", "$1");