查看此答案。
它正在工作
程序:
String filter = "phoneNumber eq 763436 and carrier eq 'AT and T Mobility' and site startswith 256";
String[] split = filter.split("\\s*and\\s*(?=([^']*'[^']*')*[^']*$)");
for (String s : split) {
String[] split1 = s.trim().split(" ",3);
for (String s1 : split1) {
System.out.println(""+s1.replaceAll("'", ""));
}
}
输出:
phoneNumber
eq
763436
carrier
eq
AT and T Mobility
site
startswith
256
查看更新后的程序,该程序适用于所有类型的输入字符串,如下所示,
1.String filter = "'phone Number' eq '763436' and carrier eq 'AT and T Mobility' and site 'startswith' '256'";
2.String filter = "'phone Number' eq '763436' and carrier eq 'AT and T Mobility' and site 'starts with' '256'";
3.String filter = "'phone and Number' eq '763436' and carrier eq 'AT and T Mobility' and site 'starts with' '256'";
4.String filter = "phoneNumber eq '763436' and carrier eq 'AT and T Mobility' and site startswith '256'";
5.String filter = "phoneNumber eq 763436 and carrier eq 'AT and T Mobility' and site startswith 256";
更多的字符串可以像上面一样使用单引号。它适用于所有字符串..
更新程序
String filter = "'phone Number' eq 763436 and carrier eq 'AT and T Mobility' and site 'startswith' '256'";
String[] split = filter.split("\\s*and\\s*(?=([^']*'[^']*')*[^']*$)");
for (String s : split) {
String[] split1 = s.trim().split("\\s* \\s*(?=([^']*'[^']*')*[^']*$)");
for (String s1 : split1) {
System.out.println("" + s1.replaceAll("'", ""));
}
}
输出:
phone Number
eq
763436
carrier
eq
AT and T Mobility
site
startswith
256
检查更新的代码并更新状态