首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java正则表达式修改lookaround断言

Java正则表达式修改lookaround断言
EN

Stack Overflow用户
提问于 2016-01-12 05:19:01
回答 2查看 28关注 0票数 0

我有一根线

代码语言:javascript
复制
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)";

我想把它分成

代码语言:javascript
复制
(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)

我试过了

代码语言:javascript
复制
String[] parts = str.split("(?<=>)|(?=<)");

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

EN

回答 2

Stack Overflow用户

发布于 2016-01-12 05:23:44

您可以使用:

代码语言:javascript
复制
String[] parts = str.split("(?<=\\))(?=<)|(?<=>)(?=\\()");

RegEx Demo

输出:

代码语言:javascript
复制
(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)
票数 0
EN

Stack Overflow用户

发布于 2016-01-12 05:25:25

试一试

代码语言:javascript
复制
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) );
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34731281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档