Java 正则表达式
2016-04-03 15:32
330 查看
普通的匹配可以直接使用String类下的方法matches.
下面看下如何提取特定的字符串
下面看下如何提取特定的字符串
public static void demo1() { // 提取长度为3的单词 String words = "I' m jop, today is good day,do you think so"; String regex = "\\b\\w{3}\\b"; // '()'表示分组 // 1.把规则编译成模式对象 Pattern pattern = Pattern.compile(regex); // 2.由模式对象获得匹配对象 Matcher matcher = pattern.matcher(words); // 3通过find找到下一个匹配的子串,(group紧随find其后) while (matcher.find()) { // matcher.group()等价于matcher.group(0) 表示匹配的第0组,本身 System.out.println(matcher.group(0)); } } protected static void demo2() { // 提取超链接 String inStr = "<a href='http://baidu.com'>百度</a><a href='http://www.baidu.com'>百度</a>"; String regex = "href='(.+?)'"; // 这里得使用‘?’终止贪婪,否则它会匹配后面的’ Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(inStr); while (matcher.find()) { //group(0)表示匹配的这个字符串,如第一次的href='http://baidu.com' System.out.println(matcher.group(0)); //group(1)表示匹配第1个()里面的字符,如第一次的http://baidu.com System.out.println(matcher.group(1)); } }注意:如果有多个括号且嵌套,则其顺序是从从左到右,从外到内 group()的下标依次递增
相关文章推荐
- 蓝桥杯 格子刷油漆(Java实现)
- 《深入理解java虚拟机》笔记——简析java类文件结构
- 20145324 《Java程序设计》第5周学习总结
- 浅谈Java SE、Java EE、Java ME三者的区别
- Ubuntu系统中jdk的安装及配置方法
- Java反射机制
- Java虚拟机分类整理
- JavaWeb - 知识点
- SpringMVC整合Shiro
- java多线程
- 手把手实现Java权限(1)-Shiro介绍
- JDK8 ——lambda表达式
- java web的图片上传问题
- 初识——java中的类与对象
- Java十进制转二进制,递归算法
- 《Java程序设计基础》 第7章手记
- [Java]包与包之间的调用
- Java中重载与重写区别
- [JAVA · 初级]:15.异常处理机制
- Java数据库连接——JDBC基础知识(操作数据库:增删改查)