zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    HTML5 特性检测:Video Format(视频格式)
    HTML5中对script标签的规定与解释
    Java数据类型
    Java微信公众平台开发之将本地开发环境映射到公网访问
    微信扫码支付模式一和模式二的区别
    Java微信公众平台开发之获取地理位置
    Vim 的一些高频使用命令
    Python 的一些高级特性
    【面试题总结】第二篇
    Python 的模块和包
  • 原文地址:https://www.cnblogs.com/honeynm/p/4058680.html
Copyright © 2011-2022 走看看