public static void main(String[] args) {
Matcher m = Pattern.compile("(\"[^\"]*(\"{2})*[^\"]*\")*[^,]*,").matcher("洲际酒店(杭州),\"1,388\",538,100,含双早,杭州益乐路39号,\"\"\"Yile Road 39, Hangzhou, Zhejiang Province\"\"\",");
String str = "";
while (m.find()){
str = m.group();
str = str.replaceAll("(?sm)\"?([^\"]*(\"{2})*[^\"]*)\"?.*,", "$1");
str = str.replaceAll("(?sm)(\"(\"))", "$2");
System.out.print(str +" ");
}
}
程序输出结果:
洲际酒店(杭州) 1,388 538 100 含双早 杭州益乐路39号 "Yile Road 39, Hangzhou, Zhejiang Province想要的结果:
洲际酒店(杭州) 1,388 538 100 含双早 杭州益乐路39号 "Yile Road 39, Hangzhou, Zhejiang Province"就是后面再多加个“"”号,
请问,该如何修改正则 ??????? 先谢谢咯
洲际酒店(杭州) 1,388 538 100 含双早 杭州益乐路39号 Yile Road 39, Hangzhou, Zhejiang Province
Matcher m = Pattern.compile( "(\ "[^\ "]*(\ "{2})*[^\ "]*\ ")*[^,]*, ").matcher( "洲际酒店(杭州),\ "1,388\ ",538,100,含双早,杭州益乐路39号,\ "\ "\ "Yile Road 39, Hangzhou, Zhejiang Province\ "\ "\ ", ");
String str = " ";
while (m.find()){
str = m.group();
str = str.replaceAll( "(?sm)\ "?([^\ "]*(\ "{2})*[^\ "]*)\ "?.*, ", "$1 ");
str = str.replaceAll( "(?sm)(\ "(\ ")) ", "$2 ");
System.out.print(str + " ");
}
}
要得到如下输出结果:
洲际酒店(杭州) 1,388 538 100 含双早 杭州益乐路39号 Yile Road 39, Hangzhou, Zhejiang Province 该怎么样修改正则 ( ⊙ o ⊙ )!
如下:
String S2 = "洲际酒店(杭州), \"1,388\", 538, 100, 含双早, 杭州益乐路39号, \"\"\"Yile Road 39, Hangzhou, Zhejiang Province\"\"\", ";Pattern p = Pattern.compile( "((\"{3}[^\"]+\"{3})|(\"?[^\"]+?\"?)), ");
Matcher m = p.matcher(S2);
String str = " ";
int index = 0;
while (m.find()){
index++;
System.out.println("INDEX: " + index);
String str1 = m.group();
System.out.println("group: [" + str1 + "]");
String str2 = str1.replaceAll( "(\"{3}([^\"]+)\"{3}), ", "$2 ");
System.out.println("replace 1: [" + str2 + "]");
if (str1.equals(str2)) {
String str3 = str1.replaceAll( "(\"?([^\"]+)\"?), ", "$2 ");
System.out.println("replace 2: [" + str3 + "]");
}
}