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()]); }