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;

你可能感兴趣的:(Delphi)