Greediness(贪婪型):最大匹配
X?、X*、X+、X{n,} 是最大匹配。例如你要用 “<.+>” 去匹配 “aaavaabb”,也许你所期待的结果是想匹配 “”,但是实际结果却会匹配到 “aava。
在 Greediness 的模式下,会尽量大范围的匹配,直到匹配了整个内容,这时发现匹配不能成功时,开始回退缩小匹配范围,直到匹配成功
String test = "aaava 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 = "aaava 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 = "aaava abb "; String reg = "<.++>"; String test2 = ""; String reg2 = " "; System.out.println(test.replaceAll(reg, "###")); System.out.println(test2.replaceAll(reg2, "###")); 登录后复制输出:aaavaabb
更多Java 正则表达式匹配模式(贪婪型、勉强型、占有型)相关文章请关注PHP中文网!
相关标签:来源:php.cn本站声明本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn作者最新文章
1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00 1970-01-01 08:00:00最新问题非连续重复序列的模式匹配正则表达式 我有一个很长的无意义字符串,其中每个字符都是数字[0-9]或小写字母[a-z],如下所示"0z8b816ne139z1b948bjk50f9498t139gjj90t7t...来自于 2023-09-16 20:48:2801184python中涉及AND的正则表达式 我已经努力了一段时间,试图为以下任务获取正确的正则表达式:我想使用python从html文件中的表标签中删除数据。为此,我的方法是递归执行以下操作(将标签之间的HTML行存储为字符...来自于 2023-09-14 16:30:4101216如何在正则表达式匹配短语之后获得单词 - 我想获取匹配短语后的下一个单词。等。-我想改变我的疼痛阈值--“改变我的***”lettext="Iwanttochangemypainthreshold"le...来自于 2023-09-12 09:15:3201270是否可以检查字符串的一部分是否与多个答案之一匹配? 一个问题有多个答案,是否可以使用正则表达式和JavaScript检查给定答案的部分内容是否正确?例如,英语短语“Ithinkaboutit”可以翻译成世界语“Mipensaspri...来自于 2023-09-10 21:05:0101259热门教程更多>
![]()
php入门教程之一周学会PHP4206666
JAVA 初级入门视频教程2351126
小甲鱼零基础入门学习Python视频教程493335
PHP 零基础入门教程826358