// \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\n\r\t\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 : 换页符
  \n : 换行符
  \r : 回车符
  \t : 制表符(Tab)
  \v : 垂直制表符
}

// \S 匹配任何非空白, 相当于 [^\f\n\r\t\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;

Delphi 正则表达式语法(4): 常用转义字符与 .的更多相关文章

  1. Delphi 正则表达式语法(7): 匹配转义字符

    Delphi 正则表达式语法(7): 匹配转义字符 // ? 号的意义是匹配 0-1 次, 如果需要匹配 ? 怎么办 var   reg: TPerlRegEx; begin   reg := TPe ...

  2. Delphi 正则表达式语法(10): 选项

    Delphi 正则表达式语法(10): 选项 // preCaseLess: 不区分大小写, 相当于其他语言中的 i var   reg: TPerlRegEx; begin   reg := TPe ...

  3. Delphi 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索"

    Delphi 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索" //匹配右边 var   reg: TPerlRegEx; begin   ...

  4. Delphi 正则表达式语法(8): 引用子表达式 - 也叫反向引用

    Delphi 正则表达式语法(8): 引用子表达式 - 也叫反向引用 //准备: 我们先写一个搜索所有英文单词的表达式 var   reg: TPerlRegEx; begin   reg := TP ...

  5. Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配

    Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配 //贪婪匹配 var   reg: TPerlRegEx; begin   reg := TPerlRegEx.Create(nil);   ...

  6. Delphi 正则表达式语法(5): 边界

    Delphi 正则表达式语法(5): 边界 // \b 单词边界 var   reg: TPerlRegEx; begin   reg := TPerlRegEx.Create(nil);   reg ...

  7. Delphi 正则表达式语法(3): 匹配范围

    Delphi 正则表达式语法(3): 匹配范围 // [A-Z]: 匹配所有大写字母 var   reg: TPerlRegEx; begin   reg := TPerlRegEx.Create(n ...

  8. Delphi 正则表达式语法(2): 或者与重复

    Delphi 正则表达式语法(2): 或者与重复 // | 号的使用, | 是或者的意思 var   reg: TPerlRegEx; begin   reg := TPerlRegEx.Create ...

  9. Delphi 正则表达式语法(1): 关于大小写与中文

    Delphi 正则表达式语法(1): 关于大小写与中文 //替换一般字符串 var   reg: TPerlRegEx; begin   reg := TPerlRegEx.Create(nil); ...

随机推荐

  1. UVA1349 Optimal Bus Route Design 拆点法+最小费用最佳匹配

    /** 题目:UVA1349 Optimal Bus Route Design 链接:https://vjudge.net/problem/UVA-1349 题意:lrj入门经典P375 给n个点(n ...

  2. Oracle的REGEXP_INSTR函数简单使用方法

    REGEXP_INSTR函数让你搜索一个正則表達式模式字符串. 函数使用输入字符集定义的字符进行字符串的计算. 它返回一个整数,指示開始或结束匹配的子位置.这取决于return_option參数的值. ...

  3. 【Mac + Appium + Python3.6学习(六)】之安装Android模拟器(Genymotion)并运行模拟器进行自动化

    环境: MacOS:10.13.6 Virtualbox:5.2.22 Genymotion:genymotion-2.12.2 本文Virtualbox.Genymotion下载地址: 链接:htt ...

  4. Tuning 04 Sizing the Buffer Cache

    Buffer Cache 特性 The buffer cache holds copies of the data blocks from the data files. Because the bu ...

  5. (转)java 静态内部类

    转自:http://blog.sina.com.cn/s/blog_605f5b4f0100zbps.html 参考:http://docs.oracle.com/javase/tutorial/ja ...

  6. 关于C# wpf DataGrid单元格双击设置单元格内容

    1.我是使用了 visual stadio 2015, 用的C# WPF写个工具,但是发现wpf原生没有涉及表格的东西(类似 winform·的DataGridView),所以使用的是toolkit工 ...

  7. C# 各版本的新特性

    http://www.cnblogs.com/JeffreySun/archive/2012/11/14/2770211.html

  8. iOS-项目archive错误Code Sign error: No matching provisioning profile found: Your build settings UUID:

    解决办法: 1.关闭项目 2.打开xprojiect右键 打开包文件 3.搜索:PROVISIONING_PROFILE 相关删除了

  9. 5秒后跳转到另一个页面的js代码

    今天看视频学习时学习了一种新技术,即平时我们在一个页面点击“提交”或“确认”会自动跳转到一个页面. 在网上搜了一下,关于这个技术处理有多种方法,我只记下我在视频里学到的三种: 1.用一个respons ...

  10. AtCoder Tak and Hotels

    题目链接:传送门 题目大意:有 n 个点排成一条直线,每次行动可以移动不超过 L 的距离,每次行动完成必须停在点上, 数据保证有解,有 m 组询问,问从 x 到 y 最少需要几次行动? 题目思路:倍增 ...