首页 > 代码库 > java正则表达式

java正则表达式

正则表达式
正则表达式是一个强大的字符串处理工具,可以对字符串进行查找,提取,分割,替换等操作String类也提供了
如下几个特殊的方法
boolean matches(String regex):判断该字符串是否匹配指定的正则表达式
String replaceAll(String regex,String replacement):将该字符串中所有匹配的regex的字串替换成replacement
String replaceFirst(String regex,String replacement):将该字符串中第一匹配regex的字串替换成replacement
除此之外,java还提供了Pattern和Matcher两个类专门用于提供正则表达式的匹配
//使用正则表达式
//将一个字符串编译成Pattern对象
Pattern p=Pattern.complie("a*b");
//使用Pattern对象创建Matcher对象
Matcher m=p.matcher("aaaaab");
boolean b=m.matches();//true
原理:
Pattern对象是正则表达式编译后在内存中的表示形式,因此,正则表达式字符串必须先编译为Pattern对象
然后在利用该Pattern对象创建对应的Matcher对象,执行匹配所涉及的状态保存在Matcher对象中,多个Matcher对象可以
共享一个Pattern对象
Pattern是不可变的类,可供多个并发线程安全使用
Matcher类提供了如下几个常用的方法:
find():返回目标字符串中是否包含与Pattern匹配的字串
group():返回上一次与Pattern匹配的子串
start():返回上一次与Pattern匹配的子串中的开始位置
end():返回上一次与Pattern匹配的字串中的结束位置+1
lookingAt():返回目标字符串前面部分与Pattern是否匹配
matches()返回整个目标字符串与Pattern是否匹配
reset():将现有的Matcher对象应用与一个新的字符序列
public class FindGroup{
public static void main(String[] args){
//使用字符串模拟网页源码
String str="xxxx4832473248XXXXXXXXXX3q50q5q34q32078rwa34543543";
//创建一个Pattern对象,并用它建立一个Matcher对象
Matcher m=Pattern.compile("((13)\\d|(15)\d)").matches(str);
while(m.find()){
System.out.println(m.grounp());
}
}
}

java正则表达式