Java正则表达式

java.util.regex.Matcher有三个方法进行匹配
matches 方法尝试将整个输入序列与该模式匹配。
lookingAt 尝试将输入序列从头开始与该模式匹配。
find 方法扫描输入序列以查找与该模式匹配的下一个子序列。

如下两个函数一个是横向匹配一个是纵向匹配:

/**
 * 提取所有完整匹配
 * 
 * @param regex
 * @param source
 * @return String[]
 */
public static String[] matchAll(String regex, String source) {
	ArrayList<String> list = new ArrayList<String>();
	Matcher matcher = Pattern.compile(regex).matcher(source);
	while (true == matcher.find()) {
		list.add(matcher.group(0));
	}
	return list.toArray(new String[list.size()]);
}

/**
 * 匹配所有组
 * 
 * @param regex
 * @param source
 * @return
 */
public static String[] matchGroup(String regex, String source) {
	ArrayList<String> list = new ArrayList<String>();
	Matcher matcher = Pattern.compile(regex).matcher(source);
	matcher.find();
	for (int i = 0; i < matcher.groupCount(); i++) {
		list.add(matcher.group(i));
	}
	return list.toArray(new String[list.size()]);
}

 

 

发表评论

电子邮件地址不会被公开。

CAPTCHA

*