/**
* "\\s*send\\s+-[t]{1}\\s+([A-Za-z0-9]|[^\\x00-\\xff])+\\s*(\\s+-[fs]{1}\\s+([A-Za-z0-9]|[^\\x00-\\xff])+)*"
* @param cmdName 命令
* @param needArgs 必须使用的参数,每次这使用一个
* @param attchArgs 可以不使用的参数
* */
private static Set getCmdRegx(String cmdName,Set needArgs,
Set attchArgs){
if(StringUtils.isBlank(cmdName)){
return null ;
}
if(needArgs == null){
needArgs = new HashSet() ;
}
if(attchArgs == null){
attchArgs = new HashSet() ;
}
Set cmdRegsSet = new HashSet() ;
if(needArgs.size()>0 ){
Iterator nsIter = needArgs.iterator() ;
while(nsIter.hasNext()){
String nags = nsIter.next() ;
StringBuilder sb = new StringBuilder() ;
sb.append("\\s*") ;
sb.append(cmdName) ;
sb.append("\\s+-[") ;
sb.append(nags) ;
sb.append("]{1}\\s+(") ;
sb.append(charsregx) ;
sb.append(")+\\s*") ;
if(attchArgs.size()>0){
sb.append("(\\s+-[") ;
sb.append(StringUtils.join(attchArgs, "")) ;
sb.append("]{1}\\s+(") ;
sb.append(charsregx) ;
sb.append(")+)*") ;
}
cmdRegsSet.add(sb.toString()) ;
}
}else{
StringBuilder sb = new StringBuilder() ;
sb.append("\\s*") ;
sb.append(cmdName) ;
sb.append("\\s*") ;
sb.append("(\\s+-[") ;
sb.append(StringUtils.join(attchArgs, "")) ;
sb.append("]{1}\\s+(") ;
sb.append(charsregx) ;
sb.append(")+)*") ;
cmdRegsSet.add(sb.toString()) ;
}
return cmdRegsSet ;
}