java.util.regex 包主要包括以下三个类:
Pattern 类:
- pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。
Matcher 类:
- Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。
Pattern正则匹配,并获取匹配内容
public static void main(String[] args) {String str = "bjp13766805130asf1111";Pattern pattern = Pattern.compile("[0-9]*\\.?[0-9]+");Matcher matcher = pattern.matcher(str);while (matcher.find()) {//3->14//17->21System.out.println(matcher.start() + "->" + matcher.end());System.out.println("");System.out.println(str.substring(matcher.start(), matcher.end()));//13766805130//1111}
}
find():是否存在与该模式匹配的下一个子序列。简单来说就是在字符某部分匹配上模式就会返回true,同时匹配位置会记录到当前位置,再次调用时从该处匹配下一个。
Matcher中的start()和end()。start(),点进方法可以看到返回的是上一个匹配项的起始索引,如果没有匹配项将抛出IllegalStateException异常。同理,end()则为结束的索引。