首页 > 代码库 > Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配

Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配

Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配

//贪婪匹配var  reg: TPerlRegEx;begin  reg := TPerlRegEx.Create(nil);  reg.Subject := ‘<html><head><title>标题</title></head><body>内容</body></html>‘;  reg.RegEx   := ‘<.*>‘; //将会全部匹配, 因为两头分别是: < 和 >  reg.Replacement := ‘◆‘;  reg.ReplaceAll;  ShowMessage(reg.Subject); //返回: ◆  FreeAndNil(reg);end;

//非贪婪匹配var  reg: TPerlRegEx;begin  reg := TPerlRegEx.Create(nil);  reg.Subject := ‘<html><head><title>标题</title></head><body>内容</body></html>‘;  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 个或多个

Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配