文档章节

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

涂孟超
 涂孟超
发布于 2014/09/26 15:37
字数 277
阅读 2
收藏 0
//准备: 我们先写一个搜索所有英文单词的表达式
var
  reg: TPerlRegEx;
begin
  reg := TPerlRegEx.Create(nil);

  reg.Subject := 'one two three four five six seven eight nine ten';
  reg.RegEx   := '\b[A-Za-z]+\b'; //这个表达式就可以找到所有的英文单词
  reg.Replacement := '◆';
  reg.ReplaceAll;

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

  FreeAndNil(reg);
end;

 
 
 
 
 

 

 

  
//假如我们只需要每个单词的第一个字母呢? 这要用到子表达式 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); reg.Subject := 'one two three four five six seven eight nine ten'; reg.RegEx := '\b([A-Za-z])[A-Za-z]*\b'; //注意表达式中有子表达式, 在 () 中 reg.Replacement := '\1'; // \1 引用了第一个子表达式 reg.ReplaceAll; ShowMessage(reg.Subject); //返回: o t t f f s s e n t FreeAndNil(reg); end;
//表达式中可以有多个子表达式 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); reg.Subject := 'one two three ten'; reg.RegEx := '(t)(\w+)'; reg.Replacement := '[\1-\2:\0]'; // \1\2 分别引用对应的子表达式; \0 引用整个表达式 reg.ReplaceAll; ShowMessage(reg.Subject); //返回: one [t-wo:two] [t-hree:three] [t-en:ten] FreeAndNil(reg); end;
//在后面介绍 TPerlRegEx 类的方法时, 关于对 (子表达式) 的引用还有更多话题.

本文转载自:http://www.cnblogs.com/del/archive/2007/12/21/1009357.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
Java魔法堂:深入正则表达式API

目录                               一、前言 二、正则表达式的使用诉求 三、java.util.regex包 四、java.lang.String实例 五、最短路径实现诉求 六、Java支...

fsjohnhuang
2014/11/16
0
0
jQuery语法着色插件--Chili

Chili是一个jQuery源代码语法着色/高亮插件。具有以下特性: 着色非常快,易于使用,完全可定制,文档丰富。 支持显示行号。 在Internet Explorer、Firefox、Opera和Safari等浏览器上显示同样...

匿名
2008/09/19
17K
2
【正则表达式系列】一些概念(字符组、捕获组、非捕获组)

前言 本文属于 正则表达式系列文章之一,更多请前往 正则表达式系列 本文介绍一些正则中的常用名词以及对应概念,譬如字符组,捕获组、非捕获组、反向引用、转义和 等 大纲 字符组 捕获组 反...

撒网要见鱼
2017/07/31
0
0
php正则表达式心得总结

一、php采用的是PCRE模式: http://php.net/manual/zh/book.pcre.php PCRE模式 二、常用函数 preg_replace 执行正则表达式替换 http://php.net/manual/zh/function.preg-replace.php preg_ma......

爬墙
2016/12/25
12
0
Java正则表达式语法有哪些?java编程入门

初学java时,很多朋友感觉总是记不住正则表达式的语法有哪些?那我们一起来看看吧: 字符 说明 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。 ^ 匹配输入字符串开始的位置。如果...

老男孩Linux培训
07/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

37. Sudoku Solver

Description tags: backtrack,hash table difficulty: hard Write a program to solve a Sudoku puzzle by filling the empty cells.A sudoku solution must satisfy all of the following......

52iSilence7
14分钟前
0
0
磁盘格式化、磁盘挂载和手动增加swap空间

9月26日任务 4.5/4.6 磁盘格式化 4.7/4.8 磁盘挂载 4.9 手动增加swap空间 4.5/4.6 磁盘格式化 #查看Linux所支持的文件格式 [root@zgxlinux-01 ~]# cat /etc/filesystems xfs...

zgxlinux
24分钟前
0
0
intellij idea中,鼠标拖动选择的是一块矩形区域

点“编辑”-->“列选择模式” 或者 按 Shift+Alt+Insert

hengbao5
26分钟前
0
0
中文地址

火力全開
41分钟前
0
0
71:循环之for、while、break、continue、exit

1、for循环语法: for 变量名 in 条件;do......;done 1:案例1:求1加到100的和: [root@localhost_02 for]# vim for1.sh #!/bin/bashsum=0for i in `seq 1 100`do sum=$[$sum...

芬野de博客
44分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部