【发布时间】:2015-07-08 00:29:39
【问题描述】:
我正在尝试从公式中提取函数名称列表,但我的正则表达式不起作用。
给定( aaa(111) + bbb(222) ) / ccc ( 333 ),我需要获取包含aaa、bbb 和ccc 的字符串数组。相反,我得到了aaa(、bbb( 和ccc (。如何使这项工作?
这是我的尝试:
String formula = "( aaa(111) + bbb(222) ) / ccc ( 333 )";
Pattern pattern = Pattern.compile("((\\w+)\\s*\\()");
Matcher matcher = pattern.matcher(formula);
while(matcher.find()){
System.out.println(matcher.group(1));
}
【问题讨论】:
-
看起来你需要一个解析器。您尚未指定确切的规则,但正则表达式通常不足以执行此操作。
-
你应该从比赛中选择 group(2)
标签: java regex capturing-group