问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于PHP正则的贪婪模式

发布网友 发布时间:2022-04-23 05:22

我来回答

2个回答

懂视网 时间:2022-04-23 09:43

这次给大家带来正则的三种模式(贪婪型、勉强型、占有型)详解,使用正则三种模式(贪婪型、勉强型、占有型)的注意事项有哪些,下面就是实战案例,一起来看一下。

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

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

在linux里使用正则表达式详解

正则的操作符使用详解

热心网友 时间:2022-04-23 06:51

你理解错了吧,如果不取消贪婪模式就有可能匹配到www.aaa.bbb.com.com这种情况,取消贪婪模式就会在遇到第一个.com就返回匹配结果,也就是aaa.bbb
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我梦见一条蛇,谁能解梦? ...战地3港版,多人联网要求ea账号,于是用电脑注册了一个,用ps3登入提... 谁给推荐几个不花钱的好玩的游戏啊!无聊中... 天气潮汐预报app哪个好用 涨潮有什么软件 墨迹天气怎么看潮汐时间 墨迹天气潮汐预报设置教程 哪种天气预报能看潮汐 小米手机开发者模式在哪里关闭?小米手机开发者模式 上海行迈企业管理咨询有限公司讲师介绍 赵继红培训课程 我的PS里的字体为什么没有那么好看的 想成为什么样的人,就和什么样的人在一起 是不是所有智能手机都支持视频通话!~支持视频通话的手机应具备那些条件? 你希望自己成为什么样的人? 钢琴弹一半.突感觉耳朵被堵般.外围声音变小.几秒后又恢复.究竟什么原因 你想成为什么样的人,就和什么样的人在一起 你想做一个什么样的人 大学作文 感觉耳朵被堵住了,就跟进水了一样。不过我拉一下耳朵扩大一点又好了,不拉声音又变小了是怎么回事, 你想成为怎样的人?你会成为什么样的人? 右耳朵摸着木木的,听见声音很小,感觉被堵住了怎么了 当你想成为什么样的人,就一定能成为什么样的人 “你想成为什么样的人,你就是什么样的人”是哪位名人语录? 前两天感觉耳道很痒就一直用手挠,现在耳朵好像被堵住了,听到的声音很小,很不舒服,耳朵里好像进不去空 右耳朵总感觉被堵住了,但是里面不疼不痒不耳鸣,就是听的声音小,而且感觉不是立体声。 今天感觉右耳被堵住了一样,还有些声响,没有痛。右耳听到的声音明显比左耳听到的声音小。掏了几次右耳, 感觉耳朵里面有东西堵住,听声音都一下小声了 耳朵不通气 感觉被堵住了 自己说话声音变小 怎么办 袁咏仪的电视剧有哪些 山药八角瓜汤 是自己开店的能不能办信用卡 如何快速提高拼音 会引起癌症的坏习惯,你都知道哪些? 怎样提高语文的拼音成语、错别字? 现在癌症患者越来越年轻化了,哪些坏习惯会造成癌症? 哪些不良是生活习惯会致癌? 生活中哪些坏习惯有可能导致癌症? 哪些习惯容易得癌症? 生活中哪些坏习惯是形成癌症的原因? 容易致癌的坏习惯有哪些 做家务时哪些坏习惯会成为癌症的帮凶呢? 在生活中,哪些不良习惯容易诱发癌症呢?该如何预防癌症呢? 有哪些不良的日常习惯会增加癌症的患病几率? 又一位艺人因癌去世,哪些习惯可能诱发癌症? 哪些不好的习惯会增加患癌的风险? 患癌症的人很多,哪些习惯会有可能患上癌症? 哪些不良的饮食习惯,会诱发胃癌的发病率? 有什么坏习惯能致癌? 有哪些导致癌症的习惯吗? 哪些生活习惯会容易致癌? 10°左右汤圆放一天会不会坏掉?