package org;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Tests {
/**
* @param args
*/
public static void main(String[] args) {
String input = "";
String regex = "";
input = "陈-俊哥 #_com.overseas.AggregaPicture01 , mergeVertical01 , ${ param.abcsdsdsd },${param.abc}, 2008-11-11,TRUE,2,${param.abbB3}#我可以做你的小弟么?陈-俊哥 #_com.overseas.AggregaPicture01 , mergeVertical01 , ${ param.abcsdsdsd },${param.abc}, 2008-11-11,TRUE,2,${param.abbB3}#我可以做你的小弟么?";
String regexSplit = "[\\s]*,[\\s]*";
String regexClassName = "([a-zA-Z_$]{1}[a-zA-Z_.$]*[\\.]{1}[a-zA-Z_]{1}[a-zA-Z_\\d$]*)";
String regexMethodName = "([a-zA-Z_]{1}[a-zA-Z_\\d.$]*)";
String regexParamOne = "([$]{1}[{]{1}[\\s]*[^#]*\\.[^#]*[\\s]*[}]{1})";
String regexParamTwo = regexParamOne;
String regexTime = "(\\d{4}\\-\\d{2}\\-\\d{2})";
String regexBoolean = "(true|TRUE|false|FALSE)";
String regexNumber = "(\\d{1})";
String regexParamThree = regexParamOne;
StringBuffer sb = new StringBuffer();
sb.append("#(");
sb.append("[\\s]*");
sb.append(regexClassName);
sb.append(regexSplit);
sb.append(regexMethodName);
sb.append(regexSplit);
sb.append(regexParamOne);
sb.append(regexSplit);
sb.append(regexParamTwo);
sb.append(regexSplit);
sb.append(regexTime);
sb.append(regexSplit);
sb.append(regexBoolean);
sb.append(regexSplit);
sb.append(regexNumber);
sb.append(regexSplit);
sb.append(regexParamThree);
sb.append("[\\s]*)[\\s]*#");
regex = sb.toString();
// regex = "#([a-zA-Z.$-{}\\d\\s,]*)[\\s]*#";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
System.out.println("input = "+ input);
System.out.println("regex= "+regex);
while(matcher.find()){
for(int i=1; i<=matcher.groupCount(); i++){
System.out.println("group id="+i +" value="+matcher.group(i));
}
}
}
}