我看到good sample,但我不能适应我的问题。
我想从CSV行删除仅封闭字段 "
,如下所示:
" kkl ";"aa bb D";;12 "AA";;"SSS"-;" gg 12";" vv";"sdqs ";
预期结果:
kkl ;aa bb D;;12 "AA";;"SSS"-; gg 12; vv;sdqs ;
我使用模式和匹配工具
答案 0 :(得分:5)
此解决方案假定引用的字符串
中没有转义引用\"
.replaceAll("(?<=^|;)\"([^\"]*?)\"(?=;|$)", "$1")
我认为您还希望在这种情况下剥离"
:"sdfkjhksdf"
,;;;"dffff"
另一种解决方案使用所有格量词,其效果依赖于"
未出现在引用部分内的假设。
.replaceAll("(?<=^|;)(?:\"(.*?)\"){1}+(?=;|$)", "$1")
答案 1 :(得分:2)
对@ nhahtdh正则表达式进行小修改,以防止它在CSV边界之外进行贪婪匹配:
.replaceAll("(?<=^|;)\"([^;]*)\"(?=;|$)", "$1");