//查找是否存在
var
  reg: TPerlRegEx;
begin
  reg := TPerlRegEx.Create(nil);   reg.Subject := 'CodeGear Delphi 2007 for Win32';
  reg.RegEx  := '\d';   if reg.Match then
    ShowMessage('找到了')
  else
    ShowMessage('没找到');   FreeAndNil(reg);
end;

//查找是否存在(方法2)
var
  reg: TPerlRegEx;
begin
  reg := TPerlRegEx.Create(nil);   reg.Subject := 'CodeGear Delphi 2007 for Win32';
  reg.RegEx  := '\d';   reg.Match; //执行查找   if reg.FoundMatch then  //布尔变量 FoundMatch 会告诉我们查找有没有结果
    ShowMessage('找到了')
  else
    ShowMessage('没找到');   FreeAndNil(reg);
end;

//显示找到的第一个
var
  reg: TPerlRegEx;
begin
  reg := TPerlRegEx.Create(nil);   reg.Subject := 'CodeGear Delphi 2007 for Win32';
  reg.RegEx  := '\d';   if reg.Match then
    ShowMessage(reg.MatchedExpression)  //2
  else
    ShowMessage('没找到');   FreeAndNil(reg);
end;

//分别显示找到的每一个和总数
var
  reg: TPerlRegEx;
  num: Integer; //用 num 来计数
begin
  reg := TPerlRegEx.Create(nil);   reg.Subject := 'CodeGear Delphi 2007 for Win32';
  reg.RegEx  := '\d';   num := ;
  while reg.MatchAgain do  //MatchAgain 是下一个
  begin
    ShowMessage(reg.MatchedExpression); //将分别显示: 2 0 0 7 3 2
    Inc(num);
  end;
    ShowMessage(IntToStr(num)); //6   FreeAndNil(reg);
end;

//分别显示找到的每一个和总数(另一种写法)
var
  reg: TPerlRegEx;
  num: Integer; //用 num 来计数
begin
  reg := TPerlRegEx.Create(nil);   reg.Subject := 'CodeGear Delphi 2007 for Win32';
  reg.RegEx  := '\d';   num := ;
  if reg.Match then
  begin
    repeat
      ShowMessage(reg.MatchedExpression); //将分别显示: 2 0 0 7 3 2
      Inc(num);
    until (not reg.MatchAgain);
  end;
    ShowMessage(IntToStr(num)); //6   FreeAndNil(reg);
end;

//目标字符串的位置与长度
var
  reg: TPerlRegEx;
begin
  reg := TPerlRegEx.Create(nil);   reg.Subject := 'CodeGear Delphi 2007 for Win32';
  reg.RegEx  := 'Delphi';   while reg.MatchAgain do  //很明显: 本例只能找到一个结果
  begin
    ShowMessage(reg.MatchedExpression); //找到的字符串: Delphi
    ShowMessage(IntToStr(reg.MatchedExpressionOffset)); //它所在的位置: 10
    ShowMessage(IntToStr(reg.MatchedExpressionLength)); //它的长度: 6
  end;   FreeAndNil(reg);
end;

Delphi 正则表达式之TPerlRegEx 类的属性与方法(1): 查找的更多相关文章

  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

    官方网站: http://www.regular-expressions.info/delphi.html 直接下载: http://www.regular-expressions.info/down ...

  8. <九>面向对象分析之UML核心元素之设计类,类,属性,方法,可见性

    设计类

  9. java基础学习总结六(对象与类、类的属性与方法)

    一:面向过程与面向对象的区别 举例:一个人开门的动作,可以分解为开门,人进去,关门. 面向过程:人作为执行者,1:开门  2:进入   3:关门 面向对象:人作为指挥者,将开门,关门的动作都封装到门上 ...

随机推荐

  1. Python中集合类型(set)学习小结

    set 是一个无序的元素集合,支持并.交.差及对称差等数学运算, 但由于 set 不记录元素位置,因此不支持索引.分片等类序列的操作. 初始化 复制代码代码如下: s0 = set()d0 = {}s ...

  2. Linux进程状态转换图

    Linux进程状态 Linux内核中的进程状态 ◆运行状态(TASK_RUNNING) 指正在被CPU运行或者就绪的状态.这样的进程被成为runnning进程.运行态的进程可以分为3种情况:内核运行态 ...

  3. Confusing Date Format UVALive 7711 给定mm-mm-mm格式的时间。年份(1900-1999)只给了后两位数,问有多少种合法的排列使时间正确。

    /** 题目:Confusing Date Format UVALive 7711 链接:https://vjudge.net/contest/174844#problem/A 题意:给定mm-mm- ...

  4. webapck卸载以及更换版本

    有时候我们需要安装webpack的指定版本,但是又安装了webpack的其他版本,就需要先卸载webpack 1.先执行 npm uninstall webpack -g 2.找到webpack的文件 ...

  5. 一个共通的viewModel搞定所有的分页查询一览及数据导出(easyui + knockoutjs + mvc4.0)

    前言 大家看标题就明白了我想写什么了,在做企业信息化系统中可能大家写的最多的一种页面就是查询页面了.其实每个查询页面,除了条件不太一样,数据不太一样,其它的其实都差不多.所以我就想提取一些共通的东西出 ...

  6. 说明反转控制(IOC)和面向方向编程(AOP)在spring中的应用

    说明反转控制(IOC)和面向方向编程(AOP)在spring中的应用 解答:Spring 核心容器(Core)提供Spring框架的基本功能.核心容器的主要组件是BeanFactory,它是工厂模式的 ...

  7. lighttpd mysql php简单教程

    lighttpd mysql php简单教程 lighttpd+php5+mysql+Debian etch lighttpd是速度最快的静态web server,mysql最通用的的database ...

  8. JAVA基础面试(四4)

    31.String s = new String("xyz");创建了几个StringObject?是否可以继承String类? 两个或一个都有可能,”xyz”对应一个对象,这个对 ...

  9. Volley使用详细说明

    前一篇粗略的介绍了一下Volley,并在最后附上了一段使用代码,这一篇详细的介绍一下Volley的使用.前面也说了Volley主要获取JSON对象和图片加载,这里也分为两部分介绍. 1.获取JSON对 ...

  10. 纯css实现隐藏滚动条仍可以滚动

    移动端弹出层加了滚动条之后,滚动条一直在,有些不美观,overflow:hidden;虽然可以隐藏滚动条,但是不能滚动.需要实现隐藏滚动条但是仍可以滚动,js实现太麻烦,直接将滚动条隐藏会更好一些. ...