Java:Pattern和Matcher

Java:Pattern和Matcher

java.util.regex 让我们在Java中可以使用正则表达式进行匹配!它包括两个类:Pattern和Matcher。

正则表达式字符串首先被编译为Pattern对象,然后再利用该 Pattern 对象创建对应的 Matcher 对象。例如:

Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaab");
boolean b = m.matches(); //返回true

也可以直接调用Pattern类的matches()方法:

boolean b = Pattern.matches("a*b","aaab"); //返回true

Matcher类提供了几个常用方法:

名称说明
find()返回目标字符串中是否包含与 Pattern 匹配的子串
group()返回上一次与 Pattern 匹配的子串
start()返回上一次与 Pattern 匹配的子串在目标字符串中的开始位置
end()返回上一次与 Pattern 匹配的子串在目标字符串中的结束位置加 1
lookingAt()返回目标字符串前面部分与 Pattern 是否匹配
matches()返回整个目标字符串与 Pattern 是否匹配
reset()将现有的 Matcher 对象应用于一个新的字符序列

例如:使用find()group()方法可以从目标字符串中依次取出匹配正则表达式的子串。

String str = "qaq,qwq,orz,qvq";
Pattern p = Pattern.compile("q[a-z]q");
Matcher m = p.matcher(str);
		
while(m.find())
	System.out.println(m.group());

find() 方法还可以传入一个 int 类型的参数,即从该索引处向下搜索。

注意!

Java字符串在使用正则表达式的时候,反斜杠本身需要转义,例如\\d