我如何从sql insert语句中提取值:
例如:
INSERT INTO `mtable` VALUES (639383,-216,-398,1,174431,'test , test',1239629);
我尝试使用split with(,)但问题是值是否包含(,)字符
line = line.trim().replace("INSERT INTO `mtable` VALUES (", "").replace(");", "");
String []vals = line.split(",");
我需要这样的价值观:
639383
-216
398
1
174431
test , test
239629
答案 0 :(得分:0)
String a = line.trim().substring("(",")");
String[] b =a.spilt(",");
答案 1 :(得分:0)
你可以尝试这个解决方案,它不是完全证明,并且会在当前形状的角落条件下中断,你可以根据你的使用情况加强它:
String s = "INSERT INTO `mtable` VALUES (639383,-216,-398,1,174431,'test , test',1239629);";
s = s.replaceAll(".*\\((.*)\\);", "$1");
String[] strs = s.split("'");
for (String string : strs) {
if(string.endsWith(",") || string.startsWith(",")) {
String[] splits = string.split(",");
for (String string2 : splits) {
if(string2!=null && string2.trim().length()!=0) {
System.out.println(string2);
}
}
} else {
System.out.println(string);
}
}
这是输出:
639383
-216
-398
1
174431
test , test
1239629
希望这有帮助。