// \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 区分

Delphi 正则表达式语法(5): 边界的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

  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. 大数据(7) - zookeeper的安装与使用

    简介 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提 ...

  2. 换个角度剖析iptables防火墙

    这篇文章会尽量以通俗易懂的方式描述iptables的相关概念,请耐心的读完它. 防火墙相关概念 此处先描述一些相关概念. 从逻辑上讲.防火墙可以大体分为主机防火墙和网络防火墙. 主机防火墙:针对于单个 ...

  3. 多媒体开发之rtsp 打包发流---rtsp发送

    http://blog.csdn.net/ttxk/article/details/5279889 http://www.cnblogs.com/haibindev/p/3434922.html rt ...

  4. 20个JS 小技巧超级实用

    1. 将彻底屏蔽鼠标右键 oncontextmenu=”window.event.returnValue=false” < table border oncontextmenu=return(f ...

  5. requestAnimationFrame 实现JS动画

    requestAnimationFrame会随着浏览器绘制窗口的频率来绘制动画以达到最好的用户体验 // let raf = (function(){ // return window.request ...

  6. python 之 GIL(线程和进程的应用)

    一.GIL:http://www.tuicool.com/articles/7zIra2r  http://www.zhihu.com/question/23474039 二.线程锁 在threadi ...

  7. android应用安全——通信安全(android https)

    这里先引入两篇文章: 1.Android网络编程——https 不验证证书方式(信任所有证书) 2.Android: Trusting SSL certificates android中实现Https ...

  8. 利用wireshark抓取远程linux上的数据包

    原文发表在我的博客主页,转载请注明出处. 前言 因为出差,前后准备总结了一周多,所以博客有所搁置.出差真是累人的活计,不过确实可以学习到很多东西,跟着老板学习做人,学习交流的技巧.入正题~ wires ...

  9. 两个表join 连接,去掉重复的数据

    -------distinct 去重复查询 select * from  accounts acc join (select distinct accid from roles) r on r.acc ...

  10. Leetcode-Permuation Sequence

    The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and labeling all of the p ...