// ? 号的意义是匹配 0-1 次, 如果需要匹配 ? 怎么办
var
  reg: TPerlRegEx;
begin
  reg := TPerlRegEx.Create(nil);   reg.Subject := '你好吗? 还行!';
  reg.RegEx  := '\?|!'; // 加转义用的 \
  reg.Replacement := '◆';
  reg.ReplaceAll;   ShowMessage(reg.Subject); //返回: 你好吗◆ 还行◆   FreeAndNil(reg);
end;

//乱用转义符号 \ 有时是可以的, 但有时会出问题, 最好不要乱用
var
  reg: TPerlRegEx;
begin
  reg := TPerlRegEx.Create(nil);   reg.Subject := '你好吗? 还行!';
  reg.RegEx  := '\?|\!|\好'; // 给没必要的 "!" 与 "好" 加了 \ 在本例中也正常了
  reg.Replacement := '◆';
  reg.ReplaceAll;   ShowMessage(reg.Subject); //返回: 你◆吗◆ 还行◆   FreeAndNil(reg);
end;
{ 本来是有一个选项 [preExtra] 禁止乱用的, 但效果不好}

正则表达式中的特殊字符表:

 特殊字符  在正则表达式中的意义  匹配字符本身 
^ 匹配字符串的开始,或不匹配 [] 中的内容 \^
$ 匹配字符串的结尾 \$
( 和 ) 标记子表达式 \( 和 \)
[ 和 ] 匹配"多种字符" 的表达式 \[ 和 \]
{ 和 } 匹配次数的符号 \{ 和 \}
. 匹配除换行符以外的所有字符 \.
? 匹配 0 次或 1 次 \?
+ 匹配至少 1 次 \+
* 匹配 0 次或任意次 \*
| \|
\ 转义符号本身 \\

Delphi 正则表达式语法(7): 匹配转义字符的更多相关文章

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

    Delphi 正则表达式语法(4): 常用转义字符与 . // \d 匹配所有数字, 相当于 [0-9] var   reg: TPerlRegEx; begin   reg := TPerlRegE ...

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

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

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

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

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

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

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

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

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

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

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

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

  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. VMware网络连接失败解决方法

    假如你碰到了VMware 网络被断开,明明已经分配了适配器,客户端却显示网络断开没有连接. 一. 可用恢复默认的方法重置所有网卡及服务. 如图片操作: 进主工具首页.点击: 虚拟网络编辑器 然后点击下 ...

  2. apply 判定变量类型

    js 数据类型 6大类:object ,undefined,boolean,string,number,null,但是有时候我们经常要更准确的判断,比如,是数组,还是单例... 那么就用apply吧, ...

  3. ORACLE完整安装过程

    安装 oracle, 主要是, 先确认系统资源, 再安装 oracle 软件, 最后按照 oracle 数据库 如果是使用 dbca 来安装数据库, 那么不需要自己创建文件夹.( 用来安装oracle ...

  4. tomocat解决乱码问题

    使用Tomcat进行JSP开发最头疼的莫过于中文乱码问题了,总结Tomcat乱码问题出现的原因必须明白以下几点: 1.Tomcat一般总是默认使用ISO-8859-1作为字符编码方式的.所以,除非你在 ...

  5. CSS Transform / Transition / Animation 属性的区别

    back21 Jun 2011 Category: tech Tags: css 最近想UI的动画转到css3能吃进3d加速的属性上面来以加强动画的连贯性.只是对于css几个新加的属性不太熟悉,常常容 ...

  6. C++ namespace浅析

    有一些C语言的基础,突然想看看C++,在Codeblocks上新建工程的时候会生成一个打印"Hello World"的程序,和C语言些许不同.其中最突出的就是"using ...

  7. Linux IO操作——RIO包

    1.linux基本I/O接口介绍 ssize_t read(int fd, void *buf, size_t count); ssize_t write(int fd, void *buf, siz ...

  8. hdu 4706:Children's Day(模拟题,模拟输出大写字母 N)

    Children's Day Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  9. Chem 3D中怎么创建立体模型

    ChemDraw作为一款很受大家欢迎的化学绘图软件,其在绘制平面化学方面的功能已经非常的强大了,其实它也可以绘制3D图形.Chem 3D就是绘制3D图形的重要组件.而且为了满足不同的用户绘图的需求,可 ...

  10. Amazon Virtual Private Cloud(虚拟专有网络)官方文档通读

    一.什么是Amazon VPC? 参考资料: 官网文档 https://docs.aws.amazon.com/zh_cn/AmazonVPC/latest/UserGuide/VPC_Introdu ...