Delphi 正则表达式之TPerlRegEx 类的属性与方法(1): 查找

www.u8686.com-信息发布平台

Delphi 正则表达式之TPerlRegEx 类的属性与方法(1): 查找

//查找是否存在
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

//目标字符串的位置与长度
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

;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值