正则表达式对于数量限定符如 ?, + , *, {n, m} 的匹配默认是贪婪模式,比如:
a.*b 匹配 acbab 的结果是 acbab 而不是acb
正则表达式支持懒惰模式,也就是在数量限定符后加一个数量修饰词(quantifier),用问号表示, 比如:
a.*?b 匹配 acbab 的结果是 acb 而不是acbab
而Java语言在正则表达式中支持一种Possessive 数量修饰词 ,用加号表示。其字面意思是像贪婪模式一样匹配,但不回溯。这到底是什么意思呢?其实这和匹配算法相关,比如:
在贪婪模式下,正则表达式 a.*b 在匹配 acbac时,在匹配成功第一个字符a后,匹配算法会继续往后读取字符a之后的字符来匹配.* , 这时贪婪模式就起作用了,a后面的cbac都能匹配.*,但当匹配算法继续往后读取字符时,发现已经没有字符可读了,无法匹配正则表达式中的b了,于是就回溯一个字符,看c是否能匹配b,不能,继续回溯,直到回溯到b时,才匹配到了acb。 而a.*+b在匹配时是不会回溯的,也就是说当贪婪地读到最后一个字符时发现无有字符与b匹配了,就认为匹配失败了。
再举几个例子
(ab)*+a 匹配 ababacd 时 可以匹配到 ababa , 因为两个ab之后没有ab了,无法贪婪
a?+a 匹配aaaaa 时会匹配到 aa ,但 a++a和a{0, 10}+a却会匹配失败
相关推荐
* Summary of regular-expression constructs 正则表达式结构简介: * Construct Matches * Characters 字符: * x The character x x 字符 x * \\ The ...
前端开源库-typographic-apostrophes-for-possessive-plurals为所有格复数排印撇号,确保它们卷曲并向下指向,即使是为所有格复数
角度占有滤波器所有angular.js的所有格过滤器在需要时为专有名词添加撇号或撇号。... 在视图中使用它: < span> {{ Greg | possessive}} thing </ span>< span> {{ Charles | possessive}} thing </ span>
ng-proper-possessive-有些名称以's'结尾。 其他人没有。 做正确的事。 一个简单的AngularJS指令,可以正确处理所有格名词。 入门 说明书下载 从下载 凉亭 bower install ng-proper-possessive 用法 将...
advanced calculus的预备知识其中之一。quantifiers
在 Google Play 上获取应用程序: : 此应用程序为 Exalted 收集了各种随机生成器,其中大部分是由 Joseph Meyer ( ) 创建的。 将结果贡献给随机表。... 在触发类中调用 Java 方法rollDirection字符串:“您在 %rollD
POS Possessive ending PP Personal pronoun PP$ Possessive pronoun RB Adverb RBR Comparative adverb RBS Sup erlative adverb RP Particle SYM Symbol TO to UH Exclamation or interjection VB BE verb, base ...
print(Turkish('çanta').plural().possessive(person=1).ablative().to_json()) print(Turkish('aparat').possessive(person=2)) print(Turkish('batak').possessive(person=3)) print(Turkish('idrak').possessive...
2. The possessive _______ in Tiffany makes her unwelcome among her colleagues and circle of friends. A feature B characteristic C predisposition D streak 3. She can’t define or _______ her anger ...
Missing Manuals are witty, superbly written guides to computer products that don’t come with printed manuals (which is just about all of them)....an apostrophe in the possessive pronoun “its.”