文档章节

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

涂孟超
 涂孟超
发布于 2014/09/26 15:37
字数 277
阅读 2
收藏 0
点赞 0
评论 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
正则表达式 学习参考 推荐入门者看

正则表达式(Regular Expression)是一种匹配模式,描述的是一串文本的特征。 正如自然语言中“高大”、“坚固”等词语抽象出来描述事物特征一样,正则表达式就是字符的高度抽象,用来描述字符...

浮躁的码农
2015/08/14
0
0
Android 常用正则表达式

前言 闲扯一下,已经有好久没更新博客了,记得上一篇博客的更新时间为 2017-05-12 15:20。截止到今天,超过一百天没更新了。 这篇博客的内容大多数是从别的博客摘抄过来的,写这篇博客的目的...

xujun9411
2017/09/04
0
0
正则捕获组

分组类型 有四种分组类型 捕获型 非捕获型 正向前瞻型 反向前瞻型 捕获型 分组 下面的正则表达式匹配dotdotdot 更优雅的写法是将其分组,由一对圆括号包裹的小整体称为分组 候选 一个分组中可...

_Dot大师兄
2017/10/24
0
0
正则&highlight高亮实现(干货)

写完正则表达式以后在浏览器上检测实在是不方便,于是就写了一个JS正则小工具,大大地提高了学习效率。学习之余用正则实现了一个highlight高亮demo,欢迎交流。 什么是正则表达式? 简单的说:...

牧云云
2017/01/12
0
0
8 个 jQuery 的语法高亮插件

这里介绍 8 款 jQuery 插件,用于实现在网页上对代码进行语法高亮。 1. Highlight.js Highlight.js是一个用于在任何web页面上着色显示各种示例源代码语法的JS项目。 2. Google Code Prettif...

oschina
2012/11/17
8.4K
4

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Service Mesh所应对的8项挑战

Lori Macvittie 微服务架构是把双刃剑,我们享受它带来的开发速度(development velocity),却也不得不面对服务间通讯带来的复杂性问题。 目前大多数扩展容器化微服务的架构多是基于proxy-b...

好雨云帮
15分钟前
0
0
时间复杂度

1. 维基上的定义 在计算机科学中,算法的时间复杂度是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低...

liuyan_lc
21分钟前
0
0
js中的~符

~是js里的按位取反操作符,~~就是执行两次按位取反,其实就是保持原值,但是注意虽然是原值,但是对布尔型变量执行这个操作,会转化成相应的数值型变量,也就是 ~~true === 1,~~false === 0...

JamesView
22分钟前
0
0
webpack安装

npm install --save-dev webpack-cli

Vincent-Duan
24分钟前
0
0
实时监听EditText内容变化

主要是addTextChangedListener方法的使用 aswerEdittext.addTextChangedListener(new TextWatcher() { //编辑框的内容发生改变之前的回调方法 @Override public void before...

王先森oO
28分钟前
0
0
python连接mysql数据库

安装好必要的pymysql插件 pip install pymysql 写好配置文档 DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), #......

南桥北木
30分钟前
0
0
linux下安装 Zookeeper

Zookeeper 注册中心安装 安装: wget http://www.apache.org/dist/zookeeper/zookeeper-3.3.3/zookeeper-3.3.3.tar.gztar zxvf zookeeper-3.3.3.tar.gzcd zookeeper-3.3.3cp conf/zoo_......

颖辉小居
31分钟前
0
0
C#判断文件的真实类型(非扩展名判断)

public static void CheckFileType() { string path = @"D:\word.doc"; System.IO.FileStream fs = new System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read); ......

Lytf
32分钟前
0
0
java - 把日志生成到指定目录

1.按天小时生成日志文件 log4j.appender.ruiming.DatePattern='_'yyyy-MM-dd-HH 2.最大日志文件数据 log4j.appender.ruiming.MaxBackupIndex=100 3.下图画圈圈的很关键,是生成到知道目录必备...

轻量级赤影
33分钟前
0
0
少走弯路,给Java 1~5 年程序员的建议

今天LZ是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍。这一部分的内容,同样适用于一些希望转行到Java的同学。 在大家看之前,LZ要先声...

Java填坑之路
33分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部