//查找是否存在
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := 'CodeGear Delphi 2007 for Win32';
reg.RegEx := '\d';
if reg.Match then
ShowMessage('找到了')
else
ShowMessage('沒找到');
FreeAndNil(reg);
end;
//查找是否存在(方法2)
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := 'CodeGear Delphi 2007 for Win32';
reg.RegEx := '\d';
reg.Match; //執行查找
if reg.FoundMatch then //布爾變量 FoundMatch 會告訴我們查找有沒有結果
ShowMessage('找到了')
else
ShowMessage('沒找到');
FreeAndNil(reg);
end;
//顯示找到的第一個
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := 'CodeGear Delphi 2007 for Win32';
reg.RegEx := '\d';
if reg.Match then
ShowMessage(reg.MatchedExpression) //2
else
ShowMessage('沒找到');
FreeAndNil(reg);
end;
//分別顯示找到的每一個和總數
var
reg: TPerlRegEx;
num: Integer; //用 num 來計數
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := 'CodeGear Delphi 2007 for Win32';
reg.RegEx := '\d';
num := 0;
while reg.MatchAgain do //MatchAgain 是下一個
begin
ShowMessage(reg.MatchedExpression); //將分別顯示: 2 0 0 7 3 2
Inc(num);
end;
ShowMessage(IntToStr(num)); //6
FreeAndNil(reg);
end;
//分別顯示找到的每一個和總數(另一種寫法)
var
reg: TPerlRegEx;
num: Integer; //用 num 來計數
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := 'CodeGear Delphi 2007 for Win32';
reg.RegEx := '\d';
num := 0;
if reg.Match then
begin
repeat
ShowMessage(reg.MatchedExpression); //將分別顯示: 2 0 0 7 3 2
Inc(num);
until (not reg.MatchAgain);
end;
ShowMessage(IntToStr(num)); //6
FreeAndNil(reg);
end;
//目標字符串的位置與長度
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil);
reg.Subject := 'CodeGear Delphi 2007 for Win32';
reg.RegEx := 'Delphi';
while reg.MatchAgain do //很明顯: 本例只能找到一個結果
begin
ShowMessage(reg.MatchedExpression); //找到的字符串: Delphi
ShowMessage(IntToStr(reg.MatchedExpressionOffset)); //它所在的位置: 10
ShowMessage(IntToStr(reg.MatchedExpressionLength)); //它的長度: 6
end;
FreeAndNil(reg);
end;