抄自:万一的博客 http://www.cnblogs.com/del/category/113551.html

目录:

  1. 基本方法
  2. 查找(目标字符串及其属性)
  3. 字表达式
  4. 限定匹配范围:start、stop
  5. 字符串分隔

基本方法

use PerlRegEx; //引用单元

var
reg:TPerlRegEx; //声明变量类型
begin
reg:= TPerlRegEx.Create; //创建实例
reg.Subject:= 'Goodbye Hello-World !'; //源字符串
reg.RegEx:= '(?<=Goodbye ).*'; //正规表达式
reg.Match; //执行查找
ShowMessage(reg.MatchedText); //输出查找结果
FreeAndNil(reg); //释放内存
end;

查找

//查看是否存在
if reg.Match then ... or begin
reg.Match;
if reg.FoundMatch then ...
end
//显示找到的第一个
if reg.Match then
ShowMessage(reg.MatchedText)
//分别显示找到的每一个
while reg.MatchAgain do //MatchAgain 是下一个
begin
ShowMessage(reg.MatchedText);
Inc(num);
end;
//目标字符串的 位置 和 长度
while reg.MatchAgain do
begin
ShowMessage(reg.MatchedText); //找到的字符串
ShowMessage(IntToStr(reg.MatchedOffset));//位置
ShowMessage(IntToStr(reg.MatchedLength));//长度
end;

子表达式

//字表达式:Groups[Index :Integer]:String;
reg.Subject:= 'Goodbye Hello-World !';
reg.RegEx:= '(?<=Goodbye )(\w*)-?(\w*)';
reg.Match;
for i:= to reg.GroupCount do
begin
ShowMessage(reg.Groups[i]);
end;
//分别显示“Hello-World”,“Hello”,“World”

限定范围:start、stop

//使用不可以使用ReplaceAll ,否则仍会替换全部内容
reg.Subject := 'ababab';
reg.Start := ;
reg.Stop := ;
while reg.MatchAgain do
begin
reg.Replace;
end;
ShowMessage(reg.Subject); //返回: abab◆

字符串分隔

  reg.Subject := 'aaa,bbb,ccc,ddd';
reg.RegEx := ','; //确定字符串的分隔符 reg.Split(List,MaxInt); //List: TStrings; 用于存放分割后的字符串
{ 输入一个最大整数, 表示能分多少就分多少} ShowMessage(List.Text);
{返回:
aaa
bbb
ccc
ddd
}

Delphi 正则表达式 TPerlRegEx 类的更多相关文章

  1. Delphi 正则表达式之TPerlRegEx 类的属性与方法(7): Split 函数

    Delphi 正则表达式之TPerlRegEx 类的属性与方法(7): Split 函数 //字符串分割: Split var   reg: TPerlRegEx;   List: TStrings; ...

  2. Delphi 正则表达式之TPerlRegEx 类的属性与方法(6): EscapeRegExChars 函数

    Delphi 正则表达式之TPerlRegEx 类的属性与方法(6): EscapeRegExChars 函数 // EscapeRegExChars 函数可以自动为特殊字符加转义符号 \ var   ...

  3. Delphi 正则表达式之TPerlRegEx 类的属性与方法(5): Compile、Study

    Delphi 正则表达式之TPerlRegEx 类的属性与方法(5): Compile.Study // Compile.Study var   reg: TPerlRegEx; begin   re ...

  4. Delphi 正则表达式之TPerlRegEx 类的属性与方法(4): Replace

    Delphi 正则表达式之TPerlRegEx 类的属性与方法(4): Replace // Replace var   reg: TPerlRegEx; begin   reg := TPerlRe ...

  5. Delphi 正则表达式之TPerlRegEx 类的属性与方法(3): Start、Stop

    Delphi 正则表达式之TPerlRegEx 类的属性与方法(3): Start.Stop //设定搜索范围: Start.Stop var   reg: TPerlRegEx; begin   r ...

  6. Delphi 正则表达式之TPerlRegEx 类的属性与方法(2): 关于子表达式

    Delphi 正则表达式之TPerlRegEx 类的属性与方法(2): 关于子表达式 // MatchedExpression 与 SubExpressions[0] var   reg: TPerl ...

  7. Delphi 正则表达式之TPerlRegEx 类的属性与方法(1): 查找

    Delphi 正则表达式之TPerlRegEx 类的属性与方法(1): 查找 //查找是否存在 var   reg: TPerlRegEx; begin   reg := TPerlRegEx.Cre ...

  8. delphi正则表达式学习笔记(三)

    Delphi 中经常使用的正则表达式 在 Delphi 中使用正则表达式, 目前 PerlRegEx 应该是首选, 准备彻底而细致地研究它.  官方网站: http://www.regular-e x ...

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

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

随机推荐

  1. Hardcoded string "下一步", should use @string resource警告 (转载)

    转自:http://blog.csdn.net/iqv520/article/details/7579513 在布局文件中,文本的设置使用如下写法时会有警告:Hardcoded string &quo ...

  2. idea 取消代码下波浪线

    如图取消下面的波浪线

  3. nginx下配置虚拟主机

    linux 虚拟机下配置虚拟主机 nginx.conf 文件不动, 在 conf.d 或者 conf 目录下 新建项目.conf server { listen 80; server_name loc ...

  4. Go语言多态

    总结一下Go语言中多态 package main import "fmt" //申明一个函数类型 type FuncMs func(int ,int) int //加法 func ...

  5. vultr 购买vps

    基本安装转自:https://github.com/uxh/shadowsocks_bash/wiki/Vultr%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B 连接 Vul ...

  6. [ZPG TEST 115] 种树【差分约束】

    4. 种树 (trees.pas/c/cpp) [问题描述] 一条街的一边有几座房子.因为环保原因居民想要在路边种些树.路边的地区被分割成块,并被编号为1..n.每个块的大小为一个单位尺寸并最多可种一 ...

  7. Jewel Magic UVA - 11996 || bzoj1014: [JSOI2008]火星人prefix

    Jewel Magic UVA - 11996 这是一道用splay/非旋treap做的题(这里用的是非旋treap) 1/2/3是splay/非旋treap的常规操作.对于操作4,可以用哈希法求LC ...

  8. 员工管理系统(集合与IO流的结合使用 beta4.0 ObjectInputStream/ ObjectOutputStream)

    package cn.employee_io; import java.io.Serializable; public class Employee implements Serializable{ ...

  9. Python基础第一天

    诞生时间:1991年,创造者Guido van Rossum 优点: 1.简单  Python是一种代表简单注意思想的语言 2.易学  Python是及其容易上手,因为Python有极其简单的说明文档 ...

  10. (Android MVVM)使用Data Binding Library(2)

    复习 上一篇学到了如何在layout.xml文件中增加元素,实现数据绑定,本篇接着学习. 事件处理 在layout.xml上绑定事件有两种方法,各有千秋. 1.方法引用 2.监听绑定 1.使用方法引用 ...