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
。