[转载]正则表达式 的greedy、reluctant和possessive量词
来源:互联网 发布:双十一淘宝活动有哪些 编辑:程序博客网 时间:2024/04/29 06:18
reedy、reluctant和possessive量词的区别
greedy、reluctant和possessive量词之间有微妙的区别。
greedy量词被看作“贪婪的”,因为它们在试图搜索第一个匹配之前读完(或者说吃掉)整个输入字符串。如果第一个匹配尝试(整个输入字符串)失败,匹配器就会在输入字符串中后退一个字符并且再次尝试,重复这个过程,直到找到匹配或者没有更多剩下的字符可以后退为止。根据表达式中使用的量词,它最后试图匹配的内容是1个或者0个字符。
但是,reluctant量词采取相反的方式:它们从输入字符串的开头开始,然后逐步地一次读取一个字符搜索匹配。它们最后试图匹配的内容是整个输入字符串。
最后,possessive量词总是读完整个输入字符串,尝试一次(而且只有一次)匹配。和greedy量词不同,possessive从不后退,即使这样做能允许整体匹配成功。
为了演示,我们举个工作上的例子,当我们去爬虫网页的时候需要拿到所有tr标签的内容如
<tr>1</tr><tr>2</tr><tr>3</tr>
greedy的正则表达式<tr>.*<tr> 结果总是返回“<tr>1</tr><tr>2</tr><tr>3</tr>”
Reluctant的正则表达式<tr>.*?<tr> 结果会优先匹配一段小段的匹配,返回值“<tr>1</tr>” 和 ”<tr>2</tr>“ 以及 “<tr>3</tr>”
- [转载]正则表达式 的greedy、reluctant和possessive量词
- greedy、reluctant和possessive量词的区别
- greedy、reluctant和possessive量词的区别
- greedy、reluctant和possessive量词
- Greedy Reluctant Possessive 正则表达式
- 【转载】JAVA正则表达式的三种模式的区别-greedy reluctant possessive
- 正则表达式Greedy、Reluctant、Possessive三种策略的区别
- java 正则表达式Greedy、Reluctant、Possessive的理解
- 正则表达式中Greedy、Reluctant、Possessive数量词的区别
- 正则表达式:Greedy、Reluctant、Possessive 区别
- Java中的正则表达式中Greedy,Reluctant和Possessive数量词的区别
- 总算是明白 java正则表达式 中 Greedy 、Reluctant 、Possessive数量词的区别了
- Java正则表达中Greedy Reluctant Possessive 的区别
- Java正则表达中Greedy Reluctant Possessive 的区别
- Java正则中的Greedy、Reluctant 、Possessive
- Java正则中的Greedy、Reluctant 、Possessive qualifier
- Greedy Reluctant Possessive区别
- java基础巩固系列(十三):java正则表达式中的数量词:Greedy、Reluctant、Possessive
- MySql可视化工具MySQL Workbench使用教程
- Java Memory Management and Optimization
- fedora14下安装fcitx输入法 以及一些问题的解决
- 常见浏览器兼容问题
- vs2008发布失败原因
- [转载]正则表达式 的greedy、reluctant和possessive量词
- head 和 tail 命令
- IBM3650 M3安装操作系统总结
- hadoop2.0 yarn 内存溢出问题解决
- 没有银弹:探讨 Java 8 新增特性的优缺点
- 64位系统下同时使用64位和32位的eclipse
- 国外技术论坛(不断更新中......)
- JSTL 核心标签库 使用
- 关于DPI对布局的影响--窗口布局异常