正则表达式知识详解之贪婪模式和非贪婪模式 (java版示例)
来源:互联网 发布:陈自强 知乎 编辑:程序博客网 时间:2024/06/04 18:19
正则表达式知识详解系列,通过代码示例来说明正则表达式知识,建议自己按照例子手打一遍。
本示例的源代码下载地址:http://download.csdn.net/detail/gnail_oug/9504094
示例:
1、贪婪模式提取html标签里的内容
2、非贪婪模式提前html标签里的内容
//提取td元素里的内容String str="<table><tr><td>hello world</td><td>hello regex</td></tr></table>";//贪婪模式 * + {n,} 默认情况是贪婪模式匹配System.out.println("====贪婪模式=====");//编译正则表达式到模式对象Pattern p=Pattern.compile("<td>.*</td>");//得到匹配器Matcher m=p.matcher(str);//通过find方法查找匹配,找到就返回true,否则返回falsewhile(m.find()){//通过group方法获取前面find查找到的子字符串,start、end方法获取子字符串开始和结束位置System.out.println(m.group()+" 位置:["+m.start()+","+m.end()+"]");}//非贪婪模式,?跟在 * + {n,} 等的后面时,表示非贪婪模式,注意和子表达式后面的?区分开,子表达式后的?表示匹配0次或1次System.out.println("====非贪婪模式=====");p=Pattern.compile("<td>.*?</td>");m=p.matcher(str);while(m.find()){System.out.println(m.group()+" 位置:["+m.start()+","+m.end()+"]");}
运行结果:
====贪婪模式=====<td>hello world</td><td>hello regex</td> 位置:[11,51]====非贪婪模式=====<td>hello world</td> 位置:[11,31]<td>hello regex</td> 位置:[31,51]
0 0
- 正则表达式知识详解之贪婪模式和非贪婪模式 (java版示例)
- 正则表达式之--贪婪与非贪婪模式详解
- 正则表达式之--贪婪与非贪婪模式详解
- Python正则表达式的贪婪模式和非贪婪模式
- 正则表达式贪婪与非贪婪模式
- 正则表达式贪婪与非贪婪模式
- 正则表达式贪婪与非贪婪模式
- 正则表达式贪婪与非贪婪模式
- 正则表达式贪婪与非贪婪模式
- 正则表达式贪婪与非贪婪模式
- 正则表达式贪婪与非贪婪模式
- 正则表达式之贪婪与非贪婪模式(II)
- JS正则表达式+---贪婪和非贪婪模式学习总结
- JS正则表达式+---贪婪和非贪婪模式学习总结
- Java 正则表达式 非贪婪模式
- 正则之贪婪与非贪婪模式
- 正则之贪婪与非贪婪模式
- 正则表达式之 贪婪与非贪婪模式详解(概述)
- 在Linux直接运行安卓程序
- 练习三1001
- 圆形TextView的实现
- 山东省第五届ACM省赛题——Painting Cottages(求点集的划分)
- 啊哈!算法—冒泡排序
- 正则表达式知识详解之贪婪模式和非贪婪模式 (java版示例)
- Spring 实践:AOP
- 解读开源中国oschina App(thanatosx版)引导贴
- 长方柱体类
- 尺寸转换
- Android ListView中 每一项都有不同的布局
- 如何修改数据库的快照隔离级别
- Eclipse 安装SVN插件
- Jquery 判断 checked 是否选中