TRegexp 类

Delphi与正则表达式  DELPHi中的REGEXPR 其实这个Pascal单元我在几个论坛上面都推荐过,也是我唯一会用的DELPHI下面的正则表达式实现。正则表达式是个极其繁琐和强大的东西,小生才疏学浅,也不准备写正则表达式的教程,借着对这个单元的介绍,会有一些浅显且有用的例子。首先介绍的是这个单元的主角:TRegExpr类,这个类包括很多成员,这里仅简单的介绍一下一般匹配的过程。下面是一段在文本中提取邮件地址的代码 阅读详情

(翻译:YunHai 更新日期:2004年11月1日 E-Mail:yun_hai@hotmial.com)

TRegexp 类

 

包含文件

<owl/regexp.h>

 

描述

这是一个正则表达式类。Tregexp是一个被用作字符串搜索的类。

    正则表达式使用这些特殊字符:.     [    ]    -    ^     *    ?    +    $

 

一般的规则:

    除了特殊字符,字符相匹配它们自己。举例来说 "yardbird" 匹配 "yardbird"。

    一个反斜线 (/)跟随的一个特殊字符,相匹配特殊字符它本身。举例来"Pardon /?" 匹配 "Pardon?"

下列各项转义代码可能用来相配控制字符:

 

/b  

Backspace(退格)

 

/e  

Esc(取消)

 

/f  

Formfeed(进纸)

 

/n  

Newline(新行)

 

/r  

carriage return(回车)

 

/t  

Tab(制表)

 

/xddd  

这是十六进制数值 0xddd

 

/^x  

X相配一些控制代码 (举例来说 /^c, /^c)

 

单字符正则表达式:

“.” 匹配除/n以外的任何一个字符和特殊字符。举例来说 ".ive" 匹配 "jive" 或"five"。
 “[” 与 “]” 匹配所包含的任意一个字符。举例来说, "[aeiou]" 也会相配 "a","e" , "i" , "o" 或 "u" 。特殊字符被用在[]里面,匹配指定范围内的任意字符。举例来说, "[ a-z ]" 会在a与z之间匹配任意的小写字母。

“^”匹配未包含的任意字符。 举例来说, "[ ^g-v ]" 会不匹配g-v之间的任意的小写字母。 举例来说,"[^ g- v]"。会匹配除g与v之间的任意小写字母。

 

多字符正则表达式:

“*”匹配前面的子表达式零次或多次。举例来说, "[ a-z ]*" 匹配以字母开头的表达式零次或多次

“+” 匹配前面的子表达式一次或多次。举例来说, "[ 0-9 ]+" 匹配以数字开头的字符。

“?”匹配前面的子表达式零次或一次。举例来说"xy?z" 匹配 "xy" 或 "xyz".

 

正则表达式组合

 

举例来说, "[ A-Z ][ a-z ]*" 匹配以大写字母开头的单词。

匹配从开始的位置到换行结束。

如果正则表达式以^开始,^匹配输入字符串的开始位置。举例来说, "^[ A-Z ][ a-z ]*"匹配以大写字母开始的行。

如果正则表达式以$结尾,$ 匹配输入字符串的结束位置。举例来说, "[ A-Z ][ a-z ]*$" 匹配用大写字母开头的单词结束的行.

 

StatVal

语法:

        enum StatVal{OK=0, ILLEGAL, TOOLONG};

描述

        StatVal 枚举被 TRegexp::status 返回的状态

 

 

  状态

描述

 

OK  

意谓着给定的正则表达式是合法的

 

ILLEGAL  

意谓式样是违法的违法的

 

TOOLONG  

意谓式样超过了最大的长度 (128)

 

公有构造函数

形式1:

        TRegexp(const char far* cp);

形式2:

        TRegexp(const TRegexp far& r);

描述:

形式1:

构造一个正则表达式对象,使用cp作为正则表达式。

形式2:

构造正则表达式对象复制对象r。

 

公有成员函数

find

语法:

        size_t find(const string& s, size_t* len, size_t start=0)

描述:

在一个字符串中查找第一个匹配正则表达式的字符串。搜索从start开始,而且 len 返回相匹配字符串的长度。返回匹配字符串的开始位置。如果没有匹配被发现,len 是 0,并且返回 -1 。

 

status

语法:

        StatVal status()

描述:

        返回这一个正则表达式的状态。

状态值是:

 

  状态

描述

 

OK  

意谓着给定的正则表达式是合法的

 

ILLEGAL  

意谓式样是违法的违法的

 

TOOLONG  

意谓式样超过了最大的长度 (128)

 

操作符

=

形式1:

       TRegexp& operator=(const TRegexp& r)

形式2:

     TRegexp& operator=(const char* cp)

描述:

形式1:

将正则表达式对象实例r复制给当前正则表达式实例。

形式2:

将一个正则表达式对象的正则表达式设置为cp。

TPerlRegEx〖Delphi下的正则表达式组件,含全部源码〗 Delphi下的正则表达式组件,含全部源码,目前我用于DelphiXE2下。免积分分享! 立即下载

相关推荐

LangChain Message 官方文档

消息是聊天模型中的基本通信单位。它们用于表示聊天模型的输入和输出,以及与对话相关的其他上下文或元数据。每条消息都包含一个角色(如“用户”、“助手”)和内容(如文本或多模态数据),并可能包含根据不同聊天模型提供商而有所不同的附加元数据。LangChain 提供了一个统一的消息格式,可以跨不同聊天模型使用,简化用户在不同模型之间切换时所需关注的消息格式差异。

AI Agent 首席体验官 896

正则表达式 RegExp【详解】

常用正则表达式大全https://www.cnblogs.com/zxin/archive/2013/01/26/2877765.html 验证保留两位小数的正整数或0 /^([1-9]\d*|0)(\.\d{1,2})?$/ 验证手机号码,如13908653654 /^(1[3|5|7|8][0-9]{9})$/ 验证固定号码,如010-86551122或01086551122 /^((0\d{2,3})[-]?)(\d{7,8})([-]?(\d{3,}))?$/ 验证电话号码—手.

朝阳39的博客 4万+

从零构建生产级K8s-v1.35.0集群:基于Containerd与Cilium的kubeadm实战指南

本文详细介绍了从零构建生产级K8s-v1.35.0集群的全过程,涵盖环境准备、Containerd配置、Kubernetes组件安装、集群初始化及Cilium网络部署等关键步骤。通过实战经验分享系统调优技巧和常见问题解决方案,帮助读者快速搭建稳定高效的Kubernetes集群。

weixin_28725553的博客 220

BCB6自带的正则表达式功能

对于C++下的正则表达式,我想用得比较多的应该就是Boost里的regex了。自从BCB2009自带了Boost1.35以后,这个regex也自然进入了BCB自带的功能行列。对于还没用上BCB2009的人来说也不用为了一个正则表达式功能急着找boost的安装方法,其实BCB6早已经帮我们准备好了:TRegexp和pcre库。不过当年Borland也太“谦虚”了点,竟然没把这么重要的功能写进帮助?!

C++Builder加油站 8261

金融科技数据源

数字金融开放研究平台

平平淡淡,戒急用忍,一生学闭嘴。 1758

避坑指南:在Ubuntu 20.04上从零部署IS-Fusion环境(含CUDA 11.1和PyTorch 1.10.1配置)

本文提供了在Ubuntu 20.04系统上从零部署IS-Fusion 3D目标检测环境的详细避坑指南。内容涵盖CUDA 11.1、PyTorch 1.10.1、spconv等核心组件的精确版本安装与兼容性配置,并指导如何准备nuScenes数据集及启动模型训练,旨在帮助研究者和开发者高效搭建稳定的多模态融合算法开发环境。

gitlab7runner的博客 552

如何在Delphi中使用正则表达式

    正则表达式最早是由数学家Stephen Kleene于1956年提出,他是在对自然语言的递增研究成果的基础上提出来的。具有完整语法的正则表达式使用  在字符的格式匹配方面上,后来被应用到熔融信息技术领域。    正则表达式并非一门专用语言,但它可用于在一个文件或字符里查找和替代文本的一种标准。许多程序中都使用了正则表达式,但是作为我常用的编程工具之一的Del

痴一居 2689

树莓派4B玩转ROS2 Humble:Ubuntu Desktop一键安装与配置教程

本文详细介绍了在树莓派4B上安装和配置ROS2 Humble的完整教程,包括硬件准备、Ubuntu Desktop系统安装、一键部署ROS2、网络配置优化以及常见问题解决方案。通过简化安装流程和性能调优技巧,帮助开发者快速搭建机器人开发环境,充分发挥树莓派4B在ROS2应用中的潜力。

w8x9y0z1的博客 965

在Delphi程序中使用正则表达式

TRegexp的正则表达式的格式说明文档.  代表所有字符,换行符号(newline)除外*  0或多次 *号会尽可能多匹配+  1或多次 +号会尽可能的多匹配?  0或1个,即使前面有+号或*号,也只能为2个(即1+1=2个)^  否定符,如 [^2]+ 匹配不能含有2的任意字符串^ 匹配开头  ^D,匹配以D开头的字符串$ 匹配结尾  $S,匹配以S结尾的字符串| 相当于or About 

虫二的专栏~~在路上~~~ 2966

上证指数30年k线图_金融占星简单解读上证指数30年历史行情

阅读此文需要一定的占星基础知识,本人对于金融知识了解甚少,如有描述错误请包涵指正!影响大众事件发展趋势的都是外行星,即木星-冥王星这5颗,由于时间跨度长达30年,绘制社会行星的K线图工作量太大,所以只以时代行星对这30年行情的简单解读作为分享,在今后的短期分析中会逐渐加入社会行星,甚至在个股分析上还会加入个人行星。那即使只绘制时代行星,所展现出来的信息也无法在一张图上画出来,否则太乱难以分辨,所以...

weixin_39831242的博客 1675

02 HCM CPI SF集成-组织集成(一)

将员工主数据和组织数据从SAP Successfactors Employee CentraI复制到SAPERP或SAP S/4HANA,SAP SF CPI HCM集成

SAP CPI 130

从网页中取字符串

function gethtml(str_url:string):string;varinputdata:pointer;msdata:Tmemorystream;httpclient:Tidhttp;begin result:=; msdata:=Tmemorystream.Create(); httpclient:=Tidhttp.Create(); msdata.Clear; httpc

24782882的专栏 668

【腾讯小龙虾 WorkBuddy 专栏 03】技能(Skills)制作全教程!自定义技能编写、导出分享、导入使用一步到位

🔥腾讯AI智能体WorkBuddy自定义技能全攻略 本文为零基础用户提供WorkBuddy自定义技能的完整教程,涵盖技能概念、编写规范到实操全流程。核心内容包括: 技能本质:标准化任务指令模板,可固化重复操作流程 三大价值:一键执行重复任务/跨设备共享/降低使用门槛 实操演示:以"桌面文档自动分类"为例,分步讲解编写、测试、导出 共享方案:支持单技能/批量导出,通过任意渠道传输分享 导入指南:3秒完成他人技能加载,并提供常见问题解决方案 高阶优化:增加异常处理、版本管理等提升技能普适性

AI人人懂 2966

Delphi 正则表达式类 TRegExpr 资源文件

Delphi 正则表达式类 TRegExpr 资源文件 去发现同类优质开源项目:https://gitcode.com/ 此仓库提供了 Delphi 编程语言中用于操作正则表达式的类 TRegExpr 的资源文件。TRegExpr 是在 Delphi 7 环境下适用的一个功能强大的正则表达式操作类,能够帮助开发者轻松处理字符串匹配、查找和替换等复杂的文本处理任务。 资源文件内容 TRegExpr...

gitblog_06764的博客 941

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Delphi正则表达式类TRegExpr资源文件:简化文本处理的强大工具

Delphi正则表达式类TRegExpr资源文件:简化文本处理的强大工具 去发现同类优质开源项目:https://gitcode.com/ 在软件开发中,处理字符串数据是常见的需求,尤其是匹配、查找和替换复杂文本。Delphi正则表达式类TRegExpr资源文件正是为了满足这些需求而设计的,它提供了一种高效的方式来操作正则表达式。 项目介绍 Delphi正则表达式类TRegExpr资源文件是一个开...

gitblog_06735的博客 680

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

在Delphi7中使用RegExpr类(正则表达式类)

在 Delphi 中是没有自带的正则表达式库的,在网上能找到的用于 Delphi 的正则表达式类大体上有两个,分别是 PerlRegEx 和 RegExpr。前者相当强大,但发布程序时需要带上他的一个 DLL 文件,感觉很麻烦。而后者是完全使用 Delphi 来实现,虽然功能稍微

期待下集是个可爱梦儿 4337

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

TRegExpr正则表达式

转载:DELPHi中的REGEXPR 其实这个Pascal单元我在几个论坛上面都推荐过,也是我唯一会用的DELPHI下面的正则表达式实现。 正则表达式是个极其繁琐和强大的东西,小生才疏学浅,也不准备写正则表达式的教程,借着对这个单元的介绍,会有一些浅显且有用的例子。

2243

在Delphi中使用正则表达式

//参考地址:http://www.wangchao.net.cn/bbsdetail_41190.html 一、微软RegExp      1. 下载并安装最新版的"Microsoft(r) Windows(r) Script"  2. RegExp包含在vbscript.dll中所以我们必须先注册regsvr32 vbscript.dll   注(安装了Ie5后默认已经包含

linkyang的专栏 693

Delphi使用正则表达式

Delphi使用正则表达式2006-09-21 下午 04:24//轉自:阿勇的BLOG;//http://www.ainlife.cn羡慕VB,VBA中那些功能超强又方便的正则表达式吗?如果delphi中也能有那个就好了,可是。。。。好像delphi没有这个功能呢,呵呵,看看我们如何来利用VBScript.dll这个COM组件来完成在Delphi中使用正则表达式的。1. 

tomliks的专栏 911
上一篇: (转帖)程序设置打印机打印纸张
下一篇: 解除98访问xp限制
Persistent8813
博客等级 码龄23年 7粉丝 4原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值