Java 提供了功能强大的正则表达式API,在java.util.regex 包下。整理一点常用的api。
正则表达式经编译后的表现模式,必须先将正则表达式(字符串形式)编译成此实例。
构造器是私有的,可通过如下方法获取实例:
Pattern pattern = Pattern.compile("\\d");
匹配器,一个Matcher对象可以匹配任意character sequences。
String str = "12";
Pattern pattern = Pattern.compile("\\d{2}");
Matcher matcher = pattern.matcher(str);
String str = "12";
System.out.println("----方法1----");
Pattern pattern = Pattern.compile("\\d{2}");
Matcher matcher = pattern.matcher(str);
System.out.println(matcher.matches());
System.out.println("----方法2----");
System.out.println(Pattern.matches("\\d{2}",str));
输出
----方法1----
true
----方法2----
true
判断字符串是否包含符合正则表达式的字符串
String str = "This is Hangzhou";
Pattern pattern = Pattern.compile("Hangzhou");
Matcher matcher = pattern.matcher(str);
//判断是否包含
System.out.println(matcher.find());
//输出第一个符合的字符串
System.out.println(matcher.group());
find()方法,每次调用都返回下一个
如下输出所有匹配的字符串
start() :开始位置
end():结束位置+1
String str = "#ffbbad asda #f33 #ffdd11 #dsasaa ";
Pattern pattern = Pattern.compile("#[a-fA-F0-9]{6}|#[a-fA-F0-9]{3}");
Matcher matcher = pattern.matcher(str);
while(matcher.find()){
System.out.println(matcher.group()+" start:"+matcher.start()+",end:"+matcher.end());
}
结果:
#ffbbad start:0,end:7
#f33 start:13,end:17
#ffdd11 start:18,end:25