贪婪匹配与非贪婪匹配

(1)贪婪匹配

默认情况下,正则表达式使用最长匹配原则(也叫贪婪匹配原则)。

例如:要将"zoom"中匹配"zo?"的部 分替换成"r",替换的的结果是"rom"。如果要将"zoom"中匹配"zo*"   的部分替换成"r",替换后的结果是"rm"。

(2)非贪婪匹配

当字符?紧随其他限定符(*、+、?、{n}、{n,}、{n,m})之后时,匹配模式变成了最短匹配原则(也 叫非贪婪匹配原则)。

例如:在字符串"fooood"中,"fo+?"只匹配"fo"部分,而"fo+"匹配"foooo部分。

编程中如何区分两种模式

默认是贪婪模式;在量词后面直接加上一个问号?就是非贪婪模式。   

下面的都是量词:                       

{m,n}:m到n个      

*:任意多个      

+:一个到多个      

?:0或一个

posted @ 2022-05-12 09:36  小马学编程  阅读(498)  评论(0)    收藏  举报