程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi中正則表達式之TPerlRegEx類的屬性與方法(1) 查找

Delphi中正則表達式之TPerlRegEx類的屬性與方法(1) 查找

編輯:Delphi
//查找是否存在
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;
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved