您的位置:首页 > 编程语言 > Delphi

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

2007-12-21 13:55 417 查看
//贪婪匹配
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 个或多个
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: