我有一个CSV文件从下面的一个系统。
""demo"",""kkkk""
""demo " ","fg"
" " demo" "
"demo"
"value1","" frg" ","vaue5"
"val3",""tttyy " ",""hjhj","ghuy"
目标是删除所有2对双引号,只允许一组双引号,如下所示。双引号之间的空格不是固定值。这必须在Java程序中使用replaceAll
来处理。Java中的函数
"demo","kkkk"
"demo","fg"
"demo"
"demo"
"value1","frg","vaue5"
"val3","tttyy","hjhj","ghuy"
我在regex101上使用"[ ]*"
进行了测试,它适用于PHP>=7.3版本,但不适用于Java。也尝试了["]["]|[^"]s+["]
,但仍然没有得到所需的输出。对于Java程序中可以使用的正则表达式有什么建议吗?
根据所示的示例数据,您可以使用:
String repl = str.replaceAll("(?:\h*"){2}\h*", """);
RegEx演示
RegEx细节:
(?:h*"){2}
:匹配一对中间有0个或多个空格的双引号h*
:匹配0个或多个空白- 更换只是一个
"