转自:
Java Pattern.matcher()方法具有什么功能呢?
下文笔者讲述Pattern.matcher()方法的功能简介说明,如下所示:
Pattern.matcher()方法的功能:
用于匹配字符串或返回Matcher实例
Pattern.matcher()方法的返回值:
对整个字符串进行匹配,只有整个字符串都匹配了才返回true
或返回一个Matcher实例
Pattern.matcher()方法语法
Pattern.matcher(String regex,CharSequence input)
此方法是一个静态方法
用于快速匹配字符串
该方法适合用于只匹配一次,且匹配全部字符串
例:
Pattern.matches("\\d+","898989");//返回true
Pattern.matches("\\d+","8989bb");//返回false,需要匹配到所有字符串才能返回true,这里bb不能匹配到
Pattern.matches("\\d+","78r56");//返回false,需要匹配到所有字符串才能返回true,这里r不能匹配到
Pattern.matcher(CharSequence input)
此方法返回一个Matcher对象
Matcher类的构造方法也是私有的,不能随意创建
只能通过Pattern.matcher(CharSequence input)方法得到该类的实例
例
Pattern p=Pattern.compile("\\d+");
Matcher m=p.matcher("88yy77");
m.pattern();//返回p
例
package com.java265.other;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class testDom4J {
/*
* java265.com Pattern类的使用
*/
public static void main(String[] args) {
Pattern p = Pattern.compile("([a-z]+)(\\d+)");
Matcher m = p.matcher("ttt8899yy");
System.out.println(m.find()); // true
System.out.println(m.groupCount()); // 2,有两组
System.out.println(m.start(1)); // 返回0 返回第一组匹配到的子字符串在字符串中的索引号
System.out.println(m.start(2)); // 返回3
System.out.println(m.end(1)); // 返回3 返回第一组匹配到的子字符串的最后一个字符在字符串中的索引位置.
System.out.println(m.end(2)); // 返回7
System.out.println(m.group(1)); // 返回ttt,返回第一组匹配到的子字符串
System.out.println(m.group(2)); // 返回8899,返回第二组匹配到的子字符串
}
}
----运行以上代码,将输出以下信息----
true
2
0
3
3
7
ttt
8899