• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >正则表达式 > Java 正则表达式匹配模式(贪婪型、勉强型、占有型)

Java 正则表达式匹配模式(贪婪型、勉强型、占有型)

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了java正则表达式,java正则表达式语法,java正则表达式教程,java正则表达式实例,java正则表达式大全等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Greediness(贪婪型):最大匹配

X?、X*、X+、X{n,} 是最大匹配。例如你要用 “<.+>” 去匹配 “a<tr>aava </tr>abb”,也许你所期待的结果是想匹配 “<tr>”,但是实际结果却会匹配到 “<tr>aava </tr>。

在 Greediness 的模式下,会尽量大范围的匹配,直到匹配了整个内容,这时发现匹配不能成功时,开始回退缩小匹配范围,直到匹配成功

String test = "a<tr>aava </tr>abb ";
String reg = "<.+>";
System.out.println(test.replaceAll(reg, "###"));
</div>

输出:a###abb

Reluctant(Laziness)(勉强型):最小匹配
X??、X*?、X+?、X{n,}? 是最小匹配,其实X{n,m}?和X{n }?有些多余。在 Greediness 模式之后添加 ? 就成最小匹配。

在 Reluctant 的模式下,只要匹配成功,就不再继续尝试匹配更大范围的内容

String test = "a<tr>aava </tr>abb ";
String reg = "<.+?>";
System.out.println(test.replaceAll(reg, "###"));
</div>

输出:a###aava ###abb

与 Greediness 不同,Reluctant 模式下匹配了两次内容

Possessive(占有型):完全匹配
X?+、X*+、X++、X{n,}+ 是完全匹配,在 Greediness 模式之后添加 + 就成完全匹配。

Possessive 模式与 Greediness 有一定的相似性,那就是都尽量匹配最大范围的内容,直到内容结束,但与 Greediness 不同的是,完全匹配不再回退尝试匹配更小的范围。

String test = "a<tr>aava </tr>abb ";
String reg = "<.++>";
String test2 = "<tr>";
String reg2 = "<tr>";
System.out.println(test.replaceAll(reg, "###"));
System.out.println(test2.replaceAll(reg2, "###"));
</div>

输出:a<tr>aava </tr>abb

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 浅析正则表达式中的lastIndex以及预查
  • 正则表达式简介及在C++11中的简单使用教程
  • 正则表达式教程之前后查找lookaround详解
  • 正则表达式验证IPV4地址功能实例分析
  • 正则表达式教程之子表达式用法分析
  • 正则表达式教程之位置匹配详解
  • 正则表达式教程之重复匹配详解
  • 正则表达式教程之匹配一组字符详解
  • 正则表达式教程之匹配单个字符详解
  • 正则表达式教程之操作符及说明详解

相关文章

  • 2017-05-11python实现统计汉字/英文单词数的正则表达式
  • 2017-05-11正则表达式常用元字符整理小结
  • 2017-05-11AS3 js正则表达式 反向引用(backreference)
  • 2017-05-11正则表达式(regex)或操作符”|“使用易出现功能Bug
  • 2017-05-11让URL只允许一些字符的正则表达式
  • 2017-05-11正则表达式教程之匹配一组字符详解
  • 2017-05-11asp email邮箱地址验证正则表达式
  • 2017-05-11JAVA中正则表达式小总结(整理)
  • 2017-05-11积累比较常用的正则表达式(例如:匹配中文、匹配html)
  • 2017-05-11正则表达式惰性匹配模式(?)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • JavaScript中的正则表达式使用及验证qq号码的正则
    • 正则匹配原理之 逆序环视深入 .
    • 正则表达式在网页处理中的应用四则
    • JavaScript中的正则表达式解析
    • 正则表达式中的反向预搜索(上)
    • 正则表达式匹配IP的表达式(推荐)
    • 正则表达式在IOS中的应用及IOS中三种正则表达式的使用与比较
    • 正则表达式提取图片路径 并过滤掉指定字符的写法
    • 得到连接和图片的地址 正则
    • javascript下正则匹配百分比的代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有