linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘网络学院网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > Delphi >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·HexToStr函数和StrToHex函数
·Delphi中的进制转换
·delphi轻松设置无边框透明窗体
·delphi第三方控件安装(Ehlib)
·DELPHI组件安装全攻略
·delphi动态创建控件
·开发工具比较Visual C++ VS De
·delphi完整身份证效验程序实例
·delphi中的Format函数详解
·delphi编程获取打印机的打印任
·如何判断文本文件的编码格式
·深入研究Variant数组
·用delphi编写网络游戏的外挂
·Delphi技巧-用户自定义数据类型
·delphi设置控件透明
最新文章
·在应用程序中跟踪MOUSE的坐标
·压缩和修复MS Access 2000文件
·DELPHI 6.0 动画制做
·怎样在Delphi中调用LastError信
·怎样得到主域服务器名称
·怎样利用递归实现删除某一目录
·读出主键下所有项
·如何制作照片底片效果的图像(
·获得Modem的状态
·WebBrowser屏幕滚动的实现,设
·有关字符串处理的小技巧
·Delphi建立键盘鼠标动作纪录与
·Delphi中布尔类型辨析
·DELPHI程序注册码设计
·图形的不规则的Copy
Google
 
DELPHI 中的规则表达式
[ 作者:  加入时间:2007-12-03 14:37:59  来自:Linux联盟收集整理 ]
下载文件 http://www.undu.com/LIBS/REGEXP.ZIPTuYLinux联盟
TuYLinux联盟
由于在 "Microsoft(r) Windows(r) Script" 中的实现因此可以在 Delphi 中使用规则表达式. 首先申明本文不是对规则表达式的理论分析而是解释如何在 Delphi 中使用它.TuYLinux联盟
TuYLinux联盟
首先我建议你从以下地址下载最终版本的 "Microsoft(r) Windows(r) Script" :TuYLinux联盟
TuYLinux联盟
http://msdn.microsoft.com/downloads/default.asp?URL=/downloads/sample.asp? url=/msdn-files/027/001/733/msdncompositedoc.xmlTuYLinux联盟
TuYLinux联盟
下载需要的包. TuYLinux联盟
下载完后运行它来安装.TuYLinux联盟
TuYLinux联盟
这将安装 Microsoft(r) Windows(r) Script 其中包含了: TuYLinux联盟
TuYLinux联盟
Visual Basic(r) Script Edition (VBScript.) Version 5.6, TuYLinux联盟
JScript(r) Version 5.6, Windows Script Components, TuYLinux联盟
Windows Script Host 5.6, TuYLinux联盟
Windows Script Runtime Version 5.6. TuYLinux联盟
TuYLinux联盟
我们只对规则表达式的实现感兴趣, 它是在文件 "vbscript.dll" 中. 每当你想在一个特定的机器上运行一个使用 "Microsoft(r) Windows(r) Script" 的规则表达式的程序时, 需要复制文件 "vbscript.dll" 到该机器上并用以下命令注册它:TuYLinux联盟
TuYLinux联盟
regsvr32 vbscript.dllTuYLinux联盟
TuYLinux联盟
注意你从 internet 上下载的自动安装包会自动进行注册.TuYLinux联盟
TuYLinux联盟
现在让我们导入类型库到 Delphi 中:TuYLinux联盟
TuYLinux联盟
从 delphi 系统菜单中, 选择 "Project" 然后选择 "Import type library": 这将会显示一个包含各种可导入类型库的列表框的对话框. TuYLinux联盟
从列表框中选择 "Microsoft VBScript Regular Expressions" (跟随一个类型库的版本号). 可能会有该名称的多个项在列表框中 (仅版本号不同): 在这种情况下选择最高版本号的版本.TuYLinux联盟
在 2002 年 9 月 23 日,该包可下载的版本是: TuYLinux联盟
TuYLinux联盟
"Microsoft VBScript Regular Expressions 5.5 (Version 5.5)"TuYLinux联盟
TuYLinux联盟
而当前的版本是TuYLinux联盟
TuYLinux联盟
Microsoft(R) Windows(R) Script 5.6 TuYLinux联盟
TuYLinux联盟
该版本支持以下 "类名" TuYLinux联盟
TuYLinux联盟
TRegExpTuYLinux联盟
TMatchTuYLinux联盟
TMatchCollectionTuYLinux联盟
TSubMatchesTuYLinux联盟
TuYLinux联盟
在 "Unit dir name" 编辑框中打入类型库导入的 pascal 单元的单元名字. TuYLinux联盟
去掉 "Generate Component Wrapper" 复选框的复选(我们只对 pascal 源代码感兴趣) 并单击 "Create Unit" 按钮来创建导入单元. TuYLinux联盟
TuYLinux联盟
我们假定你使用的是最终版本.TuYLinux联盟
TuYLinux联盟
"Microsoft VBScript Regular Expressions 5.5 (Version 5.5)" TuYLinux联盟
TuYLinux联盟
将会定义以下 "接口":TuYLinux联盟
TuYLinux联盟
IRegExp = interface;TuYLinux联盟
IMatch = interface;TuYLinux联盟
IMatchCollection = interface;TuYLinux联盟
IRegExp2 = interface;TuYLinux联盟
IMatch2 = interface;TuYLinux联盟
IMatchCollection2 = interface;TuYLinux联盟
ISubMatches = interface;TuYLinux联盟
TuYLinux联盟
IRegExp 和 IRegExp2 是相同接口的不同的版本 (IRegExp2 是最终版本). 这对于其它接口也一样. TuYLinux联盟
TuYLinux联盟
然后是类型库中的 CoClasses 定义. 我们映射各 CoClass 到它的默认接口中:TuYLinux联盟
TuYLinux联盟
RegExp = IRegExp2;TuYLinux联盟
Match = IMatch2;TuYLinux联盟
MatchCollection = IMatchCollection2;TuYLinux联盟
SubMatches = ISubMatches;TuYLinux联盟
TuYLinux联盟
IRegExp2 是 "主要的" "接口":TuYLinux联盟
TuYLinux联盟
1) 属性:TuYLinux联盟
a) property Pattern: WideString read Get_PatternTuYLinux联盟
write Set_Pattern;TuYLinux联盟
//规则表达式TuYLinux联盟
TuYLinux联盟
b) property IgnoreCase: WordBool read Get_IgnoreCase TuYLinux联盟
write Set_IgnoreCase; TuYLinux联盟
//"大小写敏感" 搜索 (TRUE 或 FALSE)TuYLinux联盟
TuYLinux联盟
c) property Global: WordBool read Get_Global write Set_Global;TuYLinux联盟
//要对整个输入串进行全局搜索设置它为 TRUETuYLinux联盟
//如果你想在搜索到第一个匹配结果后就停止搜索设置它为 FALSETuYLinux联盟
TuYLinux联盟
d) property Multiline: WordBool read Get_Multiline TuYLinux联盟
write Set_Multiline; TuYLinux联盟
//如果输入串中包含 ‘n‘ 字符, 它包含一系列的行.TuYLinux联盟
//如果 Multiline = FALSE (默认值) 则规则表达式 TuYLinux联盟
//必须对各行进行明确地测试. TuYLinux联盟
//如果 Multiline = TRUE 规则表达式必须测试整个输入的串. TuYLinux联盟
TuYLinux联盟
2) 方法:TuYLinux联盟
TuYLinux联盟
a) function Execute(const sourceString: WideString): IDispatch; TuYLinux联盟
safecall; TuYLinux联盟
//对于各成功的匹配, 它返回一个包含 match 对象的 Matches 集合对象TuYLinux联盟
TuYLinux联盟
b) function Test(const sourceString: WideString): WordBool; TuYLinux联盟
safecall; TuYLinux联盟
//如果规则表达式可以成功地匹配则返回 TRUE TuYLinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·面向对象编程与Delphi技术浅入讨论  (2007-12-03 14:34:41)
 ·delphi函数参考手册  (2007-11-26 14:31:15)
 ·Delphi中关于TApplication类的详解  (2007-11-26 14:30:15)
 ·Delphi包的使用  (2007-11-26 14:29:50)
 ·Delphi中的INI文件编程  (2007-11-26 14:26:46)
 ·Delphi与汇编  (2007-11-26 14:24:49)
 ·使用Delphi启动和停止服务  (2007-11-26 14:09:12)
 ·delphi复制文本到剪贴版和从剪贴版取文字  (2007-11-26 13:49:36)
 ·Delphi中如何编写图像解析组件  (2007-11-26 13:49:05)
 ·delphi一句话帮助之一  (2007-11-26 13:48:12)