程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
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