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;
  • 相关阅读:
    消息中间件(一)MQ详解及四大MQ比较
    SIP协议
    PAT (Basic Level) Practice 1008 数组元素循环右移问题
    LeetCode-Algorithms 1. 两数之和
    PAT (Basic Level) Practice 1040 有几个PAT
    PAT (Basic Level) Practice 1023 组个最小数
    PAT (Basic Level) Practice 1021 个位数统计
    PAT (Basic Level) Practice 1007 素数对猜想
    PAT (Basic Level) Practice 1006 换个格式输出整数
    PAT (Basic Level) Practice 1004 成绩排名
  • 原文地址:https://www.cnblogs.com/honeynm/p/4058680.html
Copyright © 2011-2022 走看看