@param {Object} config 对话框的参数配置对象。
@param {Object,Boolean,Number,String} value 设置的返回值。
@param {Function} [callback] 当对话框关闭时调用的函
上面这段String的格式为"@param+一个空格+{类型(大括号里面不能有空格)}+一个空格+变量名(有可能是放在[]里面的)+一个空格+一段解释(后面的内容没有要求)"
高手指点下怎么匹配这种类型的String!
@param {Object,Boolean,Number,String} value 设置的返回值。
@param {Function} [callback] 当对话框关闭时调用的函
上面这段String的格式为"@param+一个空格+{类型(大括号里面不能有空格)}+一个空格+变量名(有可能是放在[]里面的)+一个空格+一段解释(后面的内容没有要求)"
高手指点下怎么匹配这种类型的String!
String s = "@param {Object} config 对话框的参数配置对象。\n"
+ "@param {Object,Boolean,Number,String} value 设置的返回值。 \n"
+ "@param {Function} [callback] 当对话框关闭时调用的函\n";
Pattern pattern = Pattern.compile("^@param \\{(\\w*(,\\w*)*)\\} (\\w*|(\\[\\w*\\])) .*$",
Pattern.MULTILINE);
Matcher matcher = pattern.matcher(s);
while (matcher.find()) {
System.out.println(matcher.group());
//for(int i = 0; i < matcher.groupCount();i ++)
//System.out.println("[" + matcher.group(i) + "]");
}
}
}
\b@para\s{1}\{[^\s\}]\}\s{1}(\w+)\s{1}(\w+)*
对应于Java的匹配符为:
String regex ="\\b@para\\s{1}\\{[^\\s\\}]\\}\\s{1}(\\w+)\\s{1}(\\w+)*";
import java.util.regex.Pattern;public class TestRegex2 {
public static void main(String[] args) {
String str = "@param {Function} [callback] 当对话框关闭时调用的函";
String regex = "@param\\s\\{[a-zA-Z,]+[^\\s]\\}\\s[\\[]?[a-zA-Z0-9]+[\\]]?\\s\\w*";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
if(matcher.find())
System.out.println(matcher.group());
}}