首页 > 解决方案 > 正则表达式在Java中的括号内获取字符串?(包括括号内的另一个括号)

问题描述

我想在第一个括号内获取所有字符串

例如,如果输入:

“1 + 2 + ( 1 + 2 + (1 + 2) ) ”

它会回来

[( 1 + 2 + (1 + 2) )]

如果输入:

“1 + (1 + 2 + (1 + 2 + (1 + 2) ) )”

它会回来

["(1 + 2 + (1 + 2 + (1 + 2) ) )"]

标签: javaregex

解决方案


您可以使用 Pattern & Matcher 类来提取您想要的内容,如下所示

   String input = "1 + (1 + 2 + (1 + 2 + (1 + 2) ) )";
   String regexp =  "(\\()(.*)(\\))";

   Pattern pattern = Pattern.compile(regexp);
   Matcher matcher = pattern.matcher(input);


   while(matcher.find()) {

       System.out.println(matcher.group(2));
   }

输出

1 + 2 + (1 + 2 + (1 + 2) )


推荐阅读