Java 正则表达式匹配模式(贪婪型、勉强型、占有型)
发布时间 - 2026-01-10 22:07:24 点击率:次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, "###"));
输出: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, "###"));
输出: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, "###"));
输出:a<tr>aava </tr>abb
# Java
# 正则表达式
# 匹配模式
# 正则表达式中最短匹配模式的用法浅析
# JS中正则表达式全局匹配模式 /g用法详解
# 正则表达式惰性匹配模式(?)
# 正则表达式全局匹配模式(g修饰符)
# 正则表达式常见的4种匹配模式小结
# 模式下
# 的是
# 配了
# 更大
# 两次
# 有一定
# 要用
# 你所
# 量大
# 但与
# 更小
# 再回
# 却会
# 那就是
# 结果是
# pre
# lt
# Greediness
# gt
# abb
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何制作一个表白网站视频,关于勇敢表白的小标题?
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
,网页ppt怎么弄成自己的ppt?
如何在 Pandas 中基于一列条件计算另一列的分组均值
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
网站建设保证美观性,需要考虑的几点问题!
北京专业网站制作设计师招聘,北京白云观官方网站?
Laravel如何实现一对一模型关联?(Eloquent示例)
html文件怎么打开证书错误_https协议的html打开提示不安全【指南】
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
北京的网站制作公司有哪些,哪个视频网站最好?
香港网站服务器数量如何影响SEO优化效果?
5种Android数据存储方式汇总
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
企业网站制作这些问题要关注
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
C语言设计一个闪闪的圣诞树
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
网站制作报价单模板图片,小松挖机官方网站报价?
LinuxCD持续部署教程_自动发布与回滚机制
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
python中快速进行多个字符替换的方法小结
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
如何用虚拟主机快速搭建网站?详细步骤解析
开心动漫网站制作软件下载,十分开心动画为何停播?
详解Android——蓝牙技术 带你实现终端间数据传输
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
SQL查询语句优化的实用方法总结
三星网站视频制作教程下载,三星w23网页如何全屏?
微信小程序 HTTPS报错整理常见问题及解决方案
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
如何在IIS7中新建站点?详细步骤解析
EditPlus中的正则表达式 实战(4)
微信小程序 canvas开发实例及注意事项
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
佛山网站制作系统,佛山企业变更地址网上办理步骤?
php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】
怎么用AI帮你设计一套个性化的手机App图标?
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
潮流网站制作头像软件下载,适合母子的网名有哪些?
Laravel如何处理文件下载请求?(Response示例)

