• Delphi 正则表达式语法(4): 常用转义字符与 .


    // d 匹配所有数字, 相当于 [0-9]
    var
      reg: TPerlRegEx;
    begin
      reg := TPerlRegEx.Create(nil);
    
      reg.Subject := '期待Delphi 2008 for Win32!';
      reg.RegEx   := 'd';
      reg.Replacement := '◆';
      reg.ReplaceAll;
    
      ShowMessage(reg.Subject); //返回: 期待Delphi ◆◆◆◆ for Win◆◆!
    
      FreeAndNil(reg);
    end;

    // D 匹配所有非数字, 相当于 [^0-9]
    var
      reg: TPerlRegEx;
    begin
      reg := TPerlRegEx.Create(nil);
    
      reg.Subject := '期待Delphi 2008 for Win32!';
      reg.RegEx   := 'D';
      reg.Replacement := '◆';
      reg.ReplaceAll;
    
      ShowMessage(reg.Subject); //返回: ◆◆◆◆◆◆◆◆◆◆◆2008◆◆◆◆◆◆◆◆32◆◆
    
      FreeAndNil(reg);
    end;

    // w 匹配字母、数字与下划线_, 相当于 [A-Za-z0-9_]
    var
      reg: TPerlRegEx;
    begin
      reg := TPerlRegEx.Create(nil);
    
      reg.Subject := '期待Delphi 2008 for Win32!';
      reg.RegEx   := 'w';
      reg.Replacement := '◆';
      reg.ReplaceAll;
    
      ShowMessage(reg.Subject); //返回: 期待◆◆◆◆◆◆ ◆◆◆◆ ◆◆◆ ◆◆◆◆◆!
      FreeAndNil(reg);
    end;

    // W 匹配非字母、数字与下划线_, 相当于 [^A-Za-z0-9_]
    var
      reg: TPerlRegEx;
    begin
      reg := TPerlRegEx.Create(nil);
    
      reg.Subject := '期待Delphi 2008 for Win32!';
      reg.RegEx   := 'W';
      reg.Replacement := '◆';
      reg.ReplaceAll;
    
      ShowMessage(reg.Subject); //返回: ◆◆◆◆Delphi◆2008◆for◆Win32◆◆
    
      FreeAndNil(reg);
    end;

    // s 匹配任何空白, 包括空格、制表、换页等, 相当于 [f
    
    	v]
    var
      reg: TPerlRegEx;
    begin
      reg := TPerlRegEx.Create(nil);
    
      reg.Subject := '期待Delphi 2008 for Win32!';
      reg.RegEx   := 's';
      reg.Replacement := '◆';
      reg.ReplaceAll;
    
      ShowMessage(reg.Subject); //返回: 期待Delphi◆2008◆for◆Win32!
    
      FreeAndNil(reg);
    end;
    
    {
      f : 换页符
      
     : 换行符
      
     : 回车符
      	 : 制表符(Tab)
      v : 垂直制表符
    }

    // S 匹配任何非空白, 相当于 [^f
    
    	v]
    var
      reg: TPerlRegEx;
    begin
      reg := TPerlRegEx.Create(nil);
    
      reg.Subject := '期待Delphi 2008 for Win32!';
      reg.RegEx   := 'S';
      reg.Replacement := '◆';
      reg.ReplaceAll;
    
      ShowMessage(reg.Subject); //返回: ◆◆◆◆◆◆◆◆◆◆ ◆◆◆◆ ◆◆◆ ◆◆◆◆◆◆◆
    
      FreeAndNil(reg);
    end;

    // x 匹配十六进制的 ASCII
    var
      reg: TPerlRegEx;
    begin
      reg := TPerlRegEx.Create(nil);
    
      reg.Subject := 'CodeGear Delphi';
      reg.RegEx   := 'x61'; // a 的 ASCII 值是 97, 也就是十六进制的 61
      reg.Replacement := '◆';
      reg.ReplaceAll;
    
      ShowMessage(reg.Subject); //返回: CodeGe◆r Delphi
    
      FreeAndNil(reg);
    end;
    
    //非常遗憾 TPerlRegEx 不能使用 u 或 U 匹配 Unicode 字符!

    // . 匹配除换行符以外的任何字符
    var
      reg: TPerlRegEx;
    begin
      reg := TPerlRegEx.Create(nil);
    
      reg.Subject := '期待' + #10 + 'Delphi 2008 for Win32!'; //#10是换行符
      reg.RegEx   := '.';
      reg.Replacement := '◆';
      reg.ReplaceAll;
    
      ShowMessage(reg.Subject);
      {返回:
        ◆◆◆◆
        ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
      }
    
      FreeAndNil(reg);
    end;
  • 相关阅读:
    创建对象的七种方式
    设计模式之工厂模式
    设计模式之单例模式
    排序算法之插入排序
    排序算法之选择排序
    类及对象初体验
    排序算法之冒泡排序
    迭代器和生成器
    装饰器
    函数进阶
  • 原文地址:https://www.cnblogs.com/honeynm/p/4058680.html
Copyright © 2020-2023  润新知