贪婪匹配与非贪婪匹配
(1)贪婪匹配
默认情况下,正则表达式使用最长匹配原则(也叫贪婪匹配原则)。
例如:要将"zoom"中匹配"zo?"的部 分替换成"r",替换的的结果是"rom"。如果要将"zoom"中匹配"zo*" 的部分替换成"r",替换后的结果是"rm"。
(2)非贪婪匹配
当字符?紧随其他限定符(*、+、?、{n}、{n,}、{n,m})之后时,匹配模式变成了最短匹配原则(也 叫非贪婪匹配原则)。
例如:在字符串"fooood"中,"fo+?"只匹配"fo"部分,而"fo+"匹配"foooo部分。
编程中如何区分两种模式
默认是贪婪模式;在量词后面直接加上一个问号?就是非贪婪模式。
下面的都是量词:
{m,n}:m到n个
*:任意多个
+:一个到多个
?:0或一个

浙公网安备 33010602011771号