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

Popular posts from this blog

java - Spring Data JPA: Why findOne(id) executing delete query internally? -

python - Mongodb How to add addtional information when aggregating? -

java - Incorrect order of records in M-M relationship in hibernate -