java 正则表达式
2016-07-26 17:36
357 查看
作用:搜索,编辑和
1.Pattern类:
pattern对象是一个正则表达式的编译表示。Pattern类没有公共构造方法。要创建一个Pattern对象,必须首先调用其静态编译方法,返回一个Pattern对象。该方法接受一个正则表达式最为它的第一个参数。
2.Matcher类
Matcher对象是对输入字符串进行解释和匹配操作的引擎。与Pattern类一样,Matcher也没有公共构造方法。需要调用Pattern对象的matcher方法来获得一个Matcher对象。
3.PatternSyntaxException:
PatternSyntaxException是一个非强制异常类,它表示一个正则表达式模式中的语法错误。
捕获组:把多个字符当成一个独立单元进行处理的方法,它通过对括号内的字符分组来创建。
实例:从一个给定字符串中找到数字串
Matcher类的方法:
1.start和end方法
实例:
运行结果:
2.matches()和lookingAt()
两个方法都是用于匹配输入序列模式,matches()要求整个序列都匹配。lookingAt()可以是部分匹配。
实例:
运行结果:
3.replaceFirst()和replaceAll().
replaceFirst()替换首次匹配。replaceAll()替换所有匹配。
实例:
4.appendReplacement()和appendTail().
用于替换匹配。
实例:
运行结果:
1.Pattern类:
pattern对象是一个正则表达式的编译表示。Pattern类没有公共构造方法。要创建一个Pattern对象,必须首先调用其静态编译方法,返回一个Pattern对象。该方法接受一个正则表达式最为它的第一个参数。
2.Matcher类
Matcher对象是对输入字符串进行解释和匹配操作的引擎。与Pattern类一样,Matcher也没有公共构造方法。需要调用Pattern对象的matcher方法来获得一个Matcher对象。
3.PatternSyntaxException:
PatternSyntaxException是一个非强制异常类,它表示一个正则表达式模式中的语法错误。
捕获组:把多个字符当成一个独立单元进行处理的方法,它通过对括号内的字符分组来创建。
实例:从一个给定字符串中找到数字串
//按指定模式在字符串中查找 String line = "This order was placed for QT3000! OK?"; String pattern = "(.*)(\\d+)(.*)"; //创建pattern对象 Pattern r = Pattern.compile(pattern); //创建matcher对象 Matcher m = r.matcher(line); if (m.find()){ System.out.println("Found value: " + m.group(0) ); System.out.println("Found value: " + m.group(1) ); System.out.println("Found value: " + m.group(2) ); } else { System.out.println("NO MATCH"); }结果
Found value: This order was placed for QT3000! OK? Found value: This order was placed for QT300 Found value: 0
Matcher类的方法:
1.start和end方法
实例:
private static String REGEX = "\\bcat\\b"; private static String INPUT = "cat cat cat cattie cat"; Pattern p = Pattern.compile(REGEX); Matcher m = p.matcher(INPUT); int count = 0; while (m.find()){ count++; System.out.println("Match number "+count); System.out.println("start():)"+m.start()); System.out.println("end():"+m.end()); }
运行结果:
Match number 1 start():)0 end():3 Match number 2 start():)4 end():7 Match number 3 start():)8 end():11 Match number 4 start():)19 end():22
2.matches()和lookingAt()
两个方法都是用于匹配输入序列模式,matches()要求整个序列都匹配。lookingAt()可以是部分匹配。
实例:
private static String REGEX = "cat"; private static String INPUT = "catcat"; Pattern p = Pattern.compile(REGEX); Matcher m = p.matcher(INPUT); System.out.println("lookingAt(): "+m.lookingAt()); System.out.println("matches():"+m.matches());
运行结果:
lookingAt(): true matches():false
3.replaceFirst()和replaceAll().
replaceFirst()替换首次匹配。replaceAll()替换所有匹配。
实例:
private static String REGEX = "cat"; private static String INPUT = "cat cat cat cattie cat"; private static String REPLACE = "dog"; Pattern p = Pattern.compile(REGEX); Matcher m = p.matcher(INPUT); System.out.println("replaceAll(): "+m.replaceAll(REPLACE)); System.out.println("replaceFirst():"+m.replaceFirst(REPLACE));运行结果:
replaceAll(): dog dog dog dogtie dog replaceFirst():dog cat cat cattie cat
4.appendReplacement()和appendTail().
用于替换匹配。
实例:
private static String REGEX = "cat"; private static String INPUT = "cat cat cat cattie catffn"; private static String REPLACE = "dog"; Pattern p = Pattern.compile(REGEX); Matcher m = p.matcher(INPUT); StringBuffer sb = new StringBuffer(); while (m.find()){ m.appendReplacement(sb,REPLACE); } System.out.println(sb.toString()); m.appendTail(sb); System.out.println(sb.toString());
运行结果:
dog dog dog dogtie dog dog dog dog dogtie dogffn
相关文章推荐
- JAVASE中级笔记
- 学习《spring 3.x企业应用开发实战》之Spring的事务管理难点剖析
- SpringBoot的常用系统变量
- 合并(序列)流
- java中使用正则表达式校验的一个例子
- Java:按值传递还是按引用传递详细解说
- eclipse的下载教程
- java7中捕获多个异常
- eclipse中svn导入项目
- Spring security +Hibernate+UserDetailsService认证
- javaweb学习总结(十一)——使用Cookie进行会话管理
- Java验证码生成库JCaptcha入门
- java获取当前系统时间和某月某一天的日期时间
- Java学习总结-反射
- 基于Java代码实现证书生成
- java中反射
- RxJava入门——概念篇
- javaIO(二)
- Spring IOC原理解读 面试必读
- JAVA笔记之RandomAccessFile