我正在寻找一个java正则表达式,它将逃脱excel单元格中的双引号。
我已经按照这个例子但需要对正则表达式进行另一次更改,以使其能够在其中一个单元格中转义双引号。
Parsing CSV input with a RegEx in java
private final Pattern pattern = Pattern.compile("\"([^\"]*)\"|(?<=,|^)([^,]*)(?=,|$)");
示例数据:
“A,B” , “2”尺寸“ , ”text1,text2,text3“
上面的正则表达式在2"
处失败。
我希望输出如下。无论外部双引号是否存在都无关紧要。
“A,B”
“2”尺寸“
“text1,text2,text3”
答案 0 :(得分:0)
虽然我同意,使用正则表达式来解析CVS并不是最好的方法,但是稍微好一些的模式是:
Pattern pattern = Pattern.compile("^\"([^\"]*)\",|,\"([^\"]*)\",|,\"([^\"]*)\"$|(?<=,|^)([^,]*)(?=,|$)");
这将仅在引号和逗号后终止单元格值,或者在命令和引号后启动它。
答案 1 :(得分:0)
string.split("\",\"")
获取String[]
的方法。
在此之后,你得到一个包含3个元素的数组:[ "A,B, 2" size, text1,text2, text3" ]