我正在尝试使用split来拆分字符串。但是我很难想出一个符合我需求的正则表达式。字符串看起来像这样:
INSERT INTO VALUES ('Cardinal','Tom B. Erichsen','Skagen 21','Stavanger',4006,'Norway');
我需要能够检索''
之间的所有值。关键是保持字符串不变。因此Tom B. Erichsen
应该是一个字符串,而不是分成Tom
,B.
,Erichsen
。
另一件事是整数不会被''
包围。
有人可以就如何使用拆分或其他方式解析这些信息给我一些建议吗?
答案 0 :(得分:0)
我做到了。
它不是有效的SQL(没有表格),但我确定它只是一个例子。
我首先从括号中拉出子串。
然后我将假设以逗号分隔的值分开。
然后我会处理每个值。
不是微不足道的,也不是一步。
可能是SQL INSERT的语法和词法分析器/解析器会更好。试着看看ANTLR。
答案 1 :(得分:0)
此代码适用于您提供的示例..
String query = "INSERT INTO VALUES ('Cardinal','Tom B. Erichsen','Skagen 21','Stavanger',4006,'Norway');";
String inside = query.substring(query.indexOf("(")+1, query.indexOf(")"));
String[] elements = inside.split(",");
for (String string : elements) {
if(string.startsWith("'")){
string = string.substring(1,string.length()-1);
}
System.out.println(string);
}