Java regex: extract function names -
i'm trying extract list of function names formula, regex not working.
given ( aaa(111) + bbb(222) ) / ccc ( 333 ) need obtain array of strings containing aaa, bbb , ccc. instead, i'm getting aaa(, bbb( , ccc (. how make work?
this attempt:
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)); }
you've got nested capture groups, make first 1 non-capture group:
pattern pattern = pattern.compile("(?:(\\w+)\\s*\\()"); or pointed out didier l remove outer group:
pattern pattern = pattern.compile("((\\w+)\\s*\\(");
Comments
Post a Comment