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

// ? 号的意义是匹配 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 次或任意次 \*
| \|
\ 转义符号本身 \\


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值