//贪婪匹配var reg: TPerlRegEx;begin reg := TPerlRegEx.Create(nil); reg.Subject := '标题 内容'; reg.RegEx := '<.*>'; //将会全部匹配, 因为两头分别是: < 和 > reg.Replacement := '◆'; reg.ReplaceAll; ShowMessage(reg.Subject); //返回: ◆ FreeAndNil(reg);end; //非贪婪匹配var reg: TPerlRegEx;begin reg := TPerlRegEx.Create(nil); reg.Subject := '标题 内容'; reg.RegEx := '<.*?>'; // *? 是非贪婪匹配方法之一, 将匹配每组 <> reg.Replacement := '◆'; reg.ReplaceAll; ShowMessage(reg.Subject); //返回: ◆◆◆标题◆◆◆内容◆◆ FreeAndNil(reg);end;//更多贪婪与非贪婪匹配对照:
贪婪匹配 | 非贪婪匹配 | 描述 |
? | ?? | 0 个或 1 个 |
+ | +? | 1 个或多个 |
* | *? | 0 个或多个 |
{n} | {n}? | n 个 |
{n,m} | {n,m}? | n - m 个 |
{n,} | {n,}? | n 个或多个 |