Delphi 正则表达式之TPerlRegEx 类的属性与方法(2): 关于子表达式
// MatchedExpression 与 SubExpressions[0]
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil); reg.Subject := 'CodeGear Delphi 2007';
reg.RegEx := 'Delphi'; while reg.MatchAgain do
begin
ShowMessage(reg.MatchedExpression); //Delphi; 这是匹配到的内容
ShowMessage(reg.SubExpressions[]); //Delphi; 也可以这样显示匹配到的内容
end;
{
SubExpressions 是一个数组:
SubExpressions[1] 储存第 1 个表达式匹配的内容;
SubExpressions[2] 储存第 2 个表达式匹配的内容;
SubExpressions[n] 储存第 n 个表达式匹配的内容; SubExpressions[0] 储存整个表达式匹配的内容; MatchedExpression 表示的不过是 SubExpressions[0].
} FreeAndNil(reg);
end;
//提取子表达式匹配到的内容
var
reg: TPerlRegEx;
begin
reg := TPerlRegEx.Create(nil); reg.Subject := 'abc A1111 BB222 CCC33 DDDD4';
reg.RegEx := '\b([A-D]+)([1-4]+)\b'; //这个表达式有两个子表达式构成 while reg.MatchAgain do
begin
ShowMessage(reg.SubExpressions[]); //将分别显示: A1111 BB222 CCC33 DDDD4
ShowMessage(reg.SubExpressions[]); //将分别显示: A BB CCC DDDD
ShowMessage(reg.SubExpressions[]); //将分别显示: 1111 222 33 4 {另外:
reg.SubExpressionCount 是子表达式的个数;
reg.SubExpressionLengths[n] 是第 n 个表达式返回的字符串的长度;
reg.SubExpressionOffsets[n] 是第 n 个表达式返回的字符串在源字符串中的位置
}
end; FreeAndNil(reg);
end;
//子表达式不能超过 MAX_SUBEXPRESSIONS = 99 个, MAX_SUBEXPRESSIONS 是 TPerlRegEx 的内置常数.
Delphi 正则表达式之TPerlRegEx 类的属性与方法(2): 关于子表达式的更多相关文章
- Delphi 正则表达式之TPerlRegEx 类的属性与方法(7): Split 函数
Delphi 正则表达式之TPerlRegEx 类的属性与方法(7): Split 函数 //字符串分割: Split var reg: TPerlRegEx; List: TStrings; ...
- Delphi 正则表达式之TPerlRegEx 类的属性与方法(6): EscapeRegExChars 函数
Delphi 正则表达式之TPerlRegEx 类的属性与方法(6): EscapeRegExChars 函数 // EscapeRegExChars 函数可以自动为特殊字符加转义符号 \ var ...
- Delphi 正则表达式之TPerlRegEx 类的属性与方法(5): Compile、Study
Delphi 正则表达式之TPerlRegEx 类的属性与方法(5): Compile.Study // Compile.Study var reg: TPerlRegEx; begin re ...
- Delphi 正则表达式之TPerlRegEx 类的属性与方法(4): Replace
Delphi 正则表达式之TPerlRegEx 类的属性与方法(4): Replace // Replace var reg: TPerlRegEx; begin reg := TPerlRe ...
- Delphi 正则表达式之TPerlRegEx 类的属性与方法(3): Start、Stop
Delphi 正则表达式之TPerlRegEx 类的属性与方法(3): Start.Stop //设定搜索范围: Start.Stop var reg: TPerlRegEx; begin r ...
- Delphi 正则表达式之TPerlRegEx 类的属性与方法(1): 查找
Delphi 正则表达式之TPerlRegEx 类的属性与方法(1): 查找 //查找是否存在 var reg: TPerlRegEx; begin reg := TPerlRegEx.Cre ...
- Delphi 正则表达式之TPerlRegEx
官方网站: http://www.regular-expressions.info/delphi.html 直接下载: http://www.regular-expressions.info/down ...
- <九>面向对象分析之UML核心元素之设计类,类,属性,方法,可见性
设计类
- java基础学习总结六(对象与类、类的属性与方法)
一:面向过程与面向对象的区别 举例:一个人开门的动作,可以分解为开门,人进去,关门. 面向过程:人作为执行者,1:开门 2:进入 3:关门 面向对象:人作为指挥者,将开门,关门的动作都封装到门上 ...
随机推荐
- 【批量加入】-拼接sql字符串
如今做的一个项目须要用到批量加入,可是封装的底层没有这种方法,所以自食其力,自己来写.我们用的是拼接sql字符串的方法来实现功能. 详细实现流程:首先将须要的数据存储到实体的list中,然后将这个li ...
- python+pandas+openpyxl下载xls illegalCharacterError
仅仅是urllib2.unquote_plus解码是不够的,需要将特殊字符去掉 ILLEGAL_CHARACTERS_RE = re.compile(r'[\000-\010]|[\013-\014] ...
- FOUC - Flash Of Unstyled Content 文档样式闪烁
问题描述 偶然间看到FOUC这个单词,在Google里找了半天终于发现了它的含义:Flash Of Unstyled Content.它指的是在某些情况下,IE在加载网页时会出现短暂的CSS样式失 ...
- Oracle 计算两个时间的差值
有两个日期数据START_DATE,END_DATE,欲得到这两个日期的时间差(以天,小时,分钟,秒,毫秒):天:ROUND(TO_NUMBER(END_DATE - START_DATE))小时:R ...
- bootstrap基础学习十一篇
bootstrap下拉菜单(Dropdowns) 下拉菜单是可切换的,是以列表格式显示链接的上下文菜单.如需使用下列菜单,只需要在 class .dropdown 内加上下拉菜单即可. a.代码示例如 ...
- (转)TCP三次握手四次挥手
转自:http://www.jellythink.com/archives/705 参考:http://blog.csdn.net/whuslei/article/details/6667471 [注 ...
- 【转】VC++计算当前时间点间隔N天的时间(不使用CTimeSpan类)
转自:http://blog.csdn.net/fzuim/article/details/61199351 涉及到有效期的设置,需要计算N天时间间隔的时间. C++ Code 123456789 ...
- WPF实用知识点
1.一个基本的WPF程序, 需要引入的程序集WindowsBase, PresentationCore, PresentationFramework using System; using Syste ...
- 把xml格式的字符串写入到一个xml文件中
package demo; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; impo ...
- Dubbo基础篇-zookeeper安装(单点)
安装步骤: 一首先安装jdk环境 二 安装zookeeper 在centos虚拟机192.168.23.131中安装zookeeper: 1 修改操作系统/etc/hosts 文件中的配置: # ...