我有一根线
String str = "(varA=0.1;varB=0.2;varC<0.3;varD>=0.4)<?0.1>(varA=1.1;varB=1.2;varC<1.3;varD>=1.4)";我想把它分成
(varA=0.1;varB=0.2;varC<0.3;varD>=0.4)
<?0.1>
(varA=1.1;varB=1.2;varC<1.3;varD>=1.4)我试过了
String[] parts = str.split("(?<=>)|(?=<)");但它并没有起作用。有什么建议吗?谢谢!但它会弹出错误
发布于 2016-01-12 05:23:44
您可以使用:
String[] parts = str.split("(?<=\\))(?=<)|(?<=>)(?=\\()");输出:
(varA=0.1;varB=0.2;varC<0.3;varD>=0.4)
<?0.1>
(varA=1.1;varB=1.2;varC<1.3;varD>=1.4)发布于 2016-01-12 05:25:25
试一试
public static void main(String[] args) {
String line = "(varA=0.1;varB=0.2;varC<0.3;varD>=0.4)<?0.1>(varA=1.1;varB=1.2;varC<1.3;varD>=1.4)";
String pattern = "(\\(.*\\))(<.*?>)(.*)";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line);
if (m.find( )) {
System.out.println("Found value: " + m.group(1) );
System.out.println("Found value: " + m.group(2) );
System.out.println("Found value: " + m.group(3) );
}
}https://stackoverflow.com/questions/34731281
复制相似问题