码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2014-10-29 10:28:12      阅读:294      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   os   ar   for   sp   

//查找是否存在
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 正则表达式之TPerlRegEx 类的属性与方法(1): 查找

标签:style   blog   http   io   color   os   ar   for   sp   

原文地址:http://www.cnblogs.com/honeynm/p/4058725.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!