1、无分组的match:
public static String match(String regex,String input) {
String res = null;
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);
//if只匹配一次,while匹配多次
if(m.find()) {
res = m.group(1);
}
return res;
}
2、有分组的match:
public static ArrayList<String> matchList(String regex,String input,int grpNum) {
ArrayList<String> list = new ArrayList<String>();
String res = null;
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);
while(m.find()) {
res = m.group(grpNum);
list.add(res);
}
return list;
}
3、举例:
public class Test {
public static void main(String[] args) {
String line = "<comment><content>2014年可以使用,中国中心在64层到69层共2万平米 //@禾臣薛朝阳:#中国中心#也盖出来了?@许立-VANTONE</content><time>2012-4-3";
String contentReg = "<content>([\\s\\S]+)</content>";
String content = match(contentReg, line,1);
System.out.println(content);
}
public static String match(String regex,String input,int grp) {
String res = null;
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);
if(m.find()) {
res = m.group(grp);
}
return res;
}
}