zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    一个可以用的句子
    QQ通讯协议分析
    do easy get
    WCF 实例模式和对象生命周期
    c# FTP操作类
    [OAuth] 翻译 前4章
    [OAuth] 翻译 第5章
    HttpRequest 生命周期
    [ WebGL系列 ] 1 什么webgl
    SQL Server 问题集 不断更新
  • 原文地址:https://www.cnblogs.com/honeynm/p/4058725.html
Copyright © 2011-2022 走看看