匹配函数定义:role\\(((\\w+,?)+)\\)
匹配嵌套函数定义:\w+\((\w+\()*('?\w+'?)*\)*
package test.case1;
import java.util.Stack;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTest {
public Stack<String> functions(String text){
Stack<String> fs = new Stack<String>();
Pattern p = Pattern.compile("\\w+\\((\\w+\\()*('?\\w+'?)*\\)*");
Matcher m = p.matcher(text);
while(m.find()){
fs.push(m.group());
}
return fs;
}
public static void main(String[] args) {
String str="direc_tor(starter('12#3','234'))".replaceAll("\\)", "");
String[] fs = str.split("\\(");
for(int i=0;i<fs.length;i++){
System.out.println(fs[i]);
}
}
}