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

本文通过多个实例展示了如何使用Delphi中的正则表达式进行字符串操作,包括单词边界、非单词边界、行首及行尾等特殊位置的匹配,并提供了具体的代码实现。
// \b 单词边界
var
  reg: TPerlRegEx;
begin
  reg := TPerlRegEx.Create(nil);

  reg.Subject := 'Delphi Delphi2007 MyDelphi'; 
  reg.RegEx   := '\bDelphi\b'; //前后边界
  reg.Replacement := '◆';
  reg.ReplaceAll;

  ShowMessage(reg.Subject); //返回: ◆ Delphi2007 MyDelphi

  FreeAndNil(reg);
end;

 
 
 
 
 

 

 

  

// \b 单词边界: 左边界
var
  reg: TPerlRegEx;
begin
  reg := TPerlRegEx.Create(nil);

  reg.Subject := 'Delphi Delphi2007 MyDelphi'; 
  reg.RegEx   := '\bDelphi'; //左边界
  reg.Replacement := '◆';
  reg.ReplaceAll;

  ShowMessage(reg.Subject); //返回: ◆ ◆2007 MyDelphi

  FreeAndNil(reg);
end;

 
 
 
 
 

 

 

  

// \b 单词边界: 右边界
var
  reg: TPerlRegEx;
begin
  reg := TPerlRegEx.Create(nil);

  reg.Subject := 'Delphi Delphi2007 MyDelphi'; 
  reg.RegEx   := 'Delphi\b'; //右边界
  reg.Replacement := '◆';
  reg.ReplaceAll;

  ShowMessage(reg.Subject); //返回: ◆ Delphi2007 My◆

  FreeAndNil(reg);
end;

 
 
 
 
 

 

 

  

// \B 非单词边界
var
  reg: TPerlRegEx;
begin
  reg := TPerlRegEx.Create(nil);

  reg.Subject := 'Delphi MyDelphi2007 MyDelphi';
  reg.RegEx   := '\BDelphi\B'; //现在只有 MyDelphi2007 中的 Delphi 属于非单词边界
  reg.Replacement := '◆';
  reg.ReplaceAll;

  ShowMessage(reg.Subject); //返回: Delphi My◆2007 MyDelphi

  FreeAndNil(reg);
end;

 
 
 
 
 

 

 

  

// ^ 行首
var
  reg: TPerlRegEx;
begin
  reg := TPerlRegEx.Create(nil);

  reg.Subject := 'Delphi Delphi2007 MyDelphi';
  reg.RegEx   := '^Del'; //匹配在行首的 Del
  reg.Replacement := '◆';
  reg.ReplaceAll;

  ShowMessage(reg.Subject); //返回: ◆phi Delphi2007 MyDelphi

  FreeAndNil(reg);
end;

 
 
 
 
 

 

 

  

// \A 也标记行首
var
  reg: TPerlRegEx;
begin
  reg := TPerlRegEx.Create(nil);

  reg.Subject := 'Delphi Delphi2007 MyDelphi';
  reg.RegEx   := '\ADel'; //匹配在行首的 Del
  reg.Replacement := '◆';
  reg.ReplaceAll;

  ShowMessage(reg.Subject); //返回: ◆phi Delphi2007 MyDelphi

  FreeAndNil(reg);
end;

 
 
 
 
 

 

 

  

// $ 行尾
var
  reg: TPerlRegEx;
begin
  reg := TPerlRegEx.Create(nil);

  reg.Subject := 'Delphi Delphi2007 MyDelphi'; 
  reg.RegEx   := 'phi$'; //匹配在行尾的 phi
  reg.Replacement := '◆';
  reg.ReplaceAll;

  ShowMessage(reg.Subject); //返回: Delphi Delphi2007 MyDel◆

  FreeAndNil(reg);
end;

 
 
 
 
 

 

 

  

// \Z 也标记行尾
var
  reg: TPerlRegEx;
begin
  reg := TPerlRegEx.Create(nil);

  reg.Subject := 'Delphi Delphi2007 MyDelphi';
  reg.RegEx   := 'phi\Z'; //匹配在行尾的 phi
  reg.Replacement := '◆';
  reg.ReplaceAll;

  ShowMessage(reg.Subject); //返回: Delphi Delphi2007 MyDel◆

  FreeAndNil(reg);
end;

// 测试时, \Z 不区分大小写; \A 区分

 
 
 
 
 

 

 

  

转载于:https://my.oschina.net/hermer/blog/319625

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值