使用正则表达式删除引号

cl-*_*l-r 0 java regex

我看到了一个很好的样本,但我不能适应我的问题.

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

" kkl ";"aa bb D";;12 "AA";;"SSS"-;" gg 12";" vv";"sdqs ";
Run Code Online (Sandbox Code Playgroud)

预期结果 :

 kkl ;aa bb D;;12 "AA";;"SSS"-; gg 12; vv;sdqs ;
Run Code Online (Sandbox Code Playgroud)

我使用Pattern和Matcher工具

nha*_*tdh 5

此解决方案假定\"引用的字符串中没有转义引号

.replaceAll("(?<=^|;)\"([^\"]*?)\"(?=;|$)", "$1")
Run Code Online (Sandbox Code Playgroud)

我假设你也想去掉了"这些情况:"sdfkjhksdf",;;;"dffff"

另一种解决方案使用所有格量词,其效果依赖于"未出现在引用部分内的假设.

.replaceAll("(?<=^|;)(?:\"(.*?)\"){1}+(?=;|$)", "$1")
Run Code Online (Sandbox Code Playgroud)