Java正则表达式修改外观断言

时间:2016-01-11 21:19:01

标签: java regex

我有一个字符串

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("(?<=>)|(?=<)");

但它没有用。 有什么建议吗?谢谢! 但它弹出错误

2 个答案:

答案 0 :(得分:0)

您可以使用:

si_pid

RegEx Demo

<强>输出:

String[] parts = str.split("(?<=\\))(?=<)|(?<=>)(?=\\()");

答案 1 :(得分:0)

尝试

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) );
  }
}