java - 正则表达式在Java中的括号内获取字符串?(包括括号内的另一个括号)
问题描述
我想在第一个括号内获取所有字符串
例如,如果输入:
“1 + 2 + ( 1 + 2 + (1 + 2) ) ”
它会回来
[( 1 + 2 + (1 + 2) )]
如果输入:
“1 + (1 + 2 + (1 + 2 + (1 + 2) ) )”
它会回来
["(1 + 2 + (1 + 2 + (1 + 2) ) )"]
解决方案
您可以使用 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) )
推荐阅读
- postgresql - pgAdmin 4 v3.0 和 v3.1 无法在 Windows 10 上加载(崩溃)
- hadoop - 如何计算 Hadoop 存储?
- java - 春季验证拒绝值
- powershell - 使用 powercli 在 esxi 内部署的 vm 上启用 ssh 服务
- java - Java - Spark - Tuple2 的自定义比较器
不管用 - docker - 在不使用任何公共/私有 docker 注册表的情况下创建 kubernetes pod
- java - 对一个比较器中具有多个字段的列表进行排序
- python - groupby 结果数据框连接
- java - 使用 2 个意图时,我的应用程序保持强制关闭
- vue.js - 如何显示 Laravel Vue Js 错误