62,634
社区成员




String str = "7,,08020056,,C.3,-,P,SYMBIAN,\"\"NOKIA,SAMSUNG,Sony Erission\"\",9.0,NPS,\"\"N73,8250,N97,E61,E71,5320,8855,6210C,N95\"\",";
String regex = "\\G(?:^|,)(?:\"([^\"]*+(?:\"\"[^\"]*+)*+)\"|([^\",]*+))";
Matcher main = Pattern.compile(regex).matcher(str);
Matcher mquote = Pattern.compile("\"\"").matcher("");
while (main.find()) {
String field;
if (main.start(2) >= 0) {
field = main.group(2);
} else {
field = mquote.reset(main.group(1)).replaceAll("\"");
}
System.out.println("Field [" + field + "]");
}
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test20100607 {
/**
* @param args
*/
public static void main(String[] args) {
String str = "7,,08020056,,C.3,-,P,SYMBIAN,\"\"NOKIA,SAMSUNG,Sony Erission\"\",9.0,NPS,\"\"N73,8250,N97,E61,E71,5320,8855,6210C,N95\"\",";
String regex = "([^,]*)(,)";
Matcher main = Pattern.compile(regex).matcher(str);
while (main.find()) {
String field;
field = main.group(1).replaceAll("\"","");
System.out.println("Field [" + field + "]");
}
}
}
String str = "7,,08020056,,C.3,-,P,SYMBIAN,\"\"NOKIA,SAMSUNG,Sony Erission\"\",9.0,NPS,\"\"N73,8250,N97,E61,E71,5320,8855,6210C,N95\"\",";
String regex = "([^,]*)(,)";
Matcher main = Pattern.compile(regex).matcher(str);
while (main.find()) {
String field;
field = main.group(1).replaceAll("\"","");
System.out.println("Field [" + field + "]");
}
CSV逗号分隔值文件
规则
0 开头是不留空,以行为单位。
1 可含或不含列名,含列名则居文件第一行。
2 一行数据不垮行,无空行。
3 以半角符号,作分隔符,列为空也要表达其存在。
4 列内容如存在半角逗号(即,)则用半角引号(即"")将该字段值包含起来。
5 列内容如存在半角引号(即")则应替换成半角双引号("")转义。
6 文件读写时引号,逗号操作规则互逆。
7 内码格式不限,可为ASCII、Unicode或者其他。