正则表达式在企业信息管理开发中的应用

上传人:wm****3 文档编号:46604934 上传时间:2018-06-27 格式:PDF 页数:4 大小:212.23KB
返回 下载 相关 举报
正则表达式在企业信息管理开发中的应用_第1页
第1页 / 共4页
正则表达式在企业信息管理开发中的应用_第2页
第2页 / 共4页
正则表达式在企业信息管理开发中的应用_第3页
第3页 / 共4页
正则表达式在企业信息管理开发中的应用_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《正则表达式在企业信息管理开发中的应用》由会员分享,可在线阅读,更多相关《正则表达式在企业信息管理开发中的应用(4页珍藏版)》请在金锄头文库上搜索。

1、 107 正则表达式在企业信息管理开发中的应用正则表达式在企业信息管理开发中的应用 武汉第二船舶设计研究所 武汉 430064 王辉 丁明君 杨进 摘摘 要要 文本是我们在使用计算机时要处理的重要内容,无论是编写文档还是编辑代码,文本几乎无处不在。因此,对文本的搜索和操作成为一项重要工作。正则表达式是一种操作文本的强大工具,而且适用于各种语言。本文将介绍正则表达式的基本规则,及其在管理信息系统开发过程中的应用。 关键词:关键词:正则表达式 字符模式 元字符 1 概述概述 正则表达式是一种匹配文本中的字符序列的字符模式,它是一种能够操作文本的工具。从最基本的层面来说, 可以让计算机用户和开发人员

2、找到想要的文本块, 而且通常会以更适合的内容来替换这些文本块。 在其他情况下, 正则表达式用于测试一个字符序列中是否包含被允许的字符模式, 目的是为了存储的有效性而进行的符合性测试。 正则表达式的作用归结为一句话,就是判断一个字符序列是否与一个模式相匹配。从宽泛的意义上来看,说正则表达式是语言是没有问题的。但是,严格来讲,不存在正则表达式这门语言。与 JavaScript和 VBScript 这样的脚本语言类似,他们都只能在另一种应用程序或者语言的环境下使用。 2 应用范围应用范围 在典型的搜索和替换操作中, 必须提供要查找的确切文字。 这种技术对于静态文本中的简单搜索和替换任务可能足够了,

3、但是由于它缺乏灵活性, 因此在搜索动态文本时就有困难了,甚至是不可能的。 使用正则表达式,我们可以做到: 1)测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。 2)替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。 3)根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。 例如,如果需要搜索整个 web 站点来删除某些过时的材料并替换某些 HTML 格式化标记, 则可以使用正则表达式对每个文件进行测试, 看在该文件中是否存在所要查

4、找的材料或 HTML 格式化标记。用这个方法,就可以将受影响的文件范围缩小到包含要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过时的材料,最后,可以再次使用正则表达式来查找并替换那些需要替换的标记。 3 语法与应用语法与应用 其实我们在使用计算机的时候多少都已经掌握了一些正则表达式的用法, 只是还不知道108 所使用的文本模式就是正则表达式。 比如, 在文字处理软件中或在命令行中查看目录列表时。 目前大多数文字处理软件都能够在某种程度上支持正则表达式, 但是在软件中却看不到正则表达式的字眼。例如,Microsoft Word 支持有限的正则表达式用法,它使用“通配符”来描述对正则表

5、达式模式的支持。最简单的正则表达式模式就是文本直接量,即,如果想查找 Star 的文本模式, 可以直接将这 4 个字符输入 Word 的查找对话框中。 但是这种方法在搜索(替换)大量文本时会存在一些问题,很多不改被替换的地方也被替换了。 如果我们曾经使用过命令行,那么很可能在查看目录列表时使用过简单的正则表达式。在命令行中, 会涉及到两个元字符 (是指在正则表达式模式中具有特殊含义的字符或字符组合):*(星号)和?(问号)。例如查找当前目录中的可执行文件,可以在命令行中输入如下命令:dir *.exe。而模式*.exe 则匹配文件名中包含零个或多个字符并且后面跟一个句点和一个直接量字符序列 e

6、xe 的文件。类似地,模式*.*表示零个或多个字符后跟一个句点以及零个或多个字符。 图 1-1 正则表达式的语法非常简洁,而且对于不熟悉正则表达式的人,看起来很奇怪。正则表达式没有标准的规范, 因此具有特定含义的正则表达式模式在支持正则表达式的不同语言和工具之间也不相同。正则表达式最早是因为被 Perl 语言采用才引起人们注意的,由于遵循不同程度的精确性,导致了其他语言和应用程序中的正则表达式语法不相同。如果我们在109 Perl 这样的脚本语言中使用.(句点)元字符,但在 Word 中实现同样的功能则要使用?(问号)。在这里很显然 Word 是不规范的,它只是正则表达式功能的不完整及非规范的

7、实现;而且像文件路径中那样的用法也并不是真正的正则表达式用法。 不同实现之间的差异也非常多,例如,元字符在某些语言的正则表达式中用于表示一行的开始位置;但就在同一种语言环境下,元字符在字符类中使用时,就变成了否定的含义(或非、取反、补集) 在 Windows 平台下的一些编程语言和脚本语言对正则表达式也是支持的,包括如下:JavaScript、VBScript、VB.NET、C#、PHP、Java、Perl、MySQL、SQL Server 2000 等。 正则表达式操作中的限定符、大括号、元字符、修饰符、字符类、词边界、圆括号等具体分类和用法比较多,这里不作详细介绍,在使用过程中可以查找具体

8、资料。下面简单介绍一下正则表达式在我们常用的一些平台和工具中的应用。 SQL Server 2000 支持有限的四个元字符,其中一些元字符的用法和含义也不标准。这四个元字符均可以在 LIKE 关键字中使用。表 1-1 列出了 SQL Server 2000 支持的元字符。 表 1-1 元字符 含 义 % 匹配零个或多个字符。%不是限定符 _ 下划线字符匹配单个字符。而且它也不是限定符 匹配字符类。可以支持字符类范围 取反的字符类 在使用 LIKE 关键字的情况下,许多正则表达式的特性都不被支持。表 1-2 列出了不被支持的正则表达式特性。 表 1-2 元字符或功能 说 明 支持情况 d 匹配任

9、何数字:0 到 9 不支持 w 只匹配英文字母字符、数字和下划线 不支持 W 匹配w 元字符不匹配的字符 不支持 ? 匹配 0 或 1 次 不支持 * 匹配 0 或多次 不支持 + 匹配 1 或多次 不支持 . 句点,可匹配任何字母字符(无论大小写)和数字 不支持 n,m 匹配最少 n 次,最多 m 次 不支持 n, 匹配最少 n 次,最多无数次 不支持 向前查找 不支持 正则表达式用于字符串处理、表单验证等场合,实用高效。下面介绍几种比较常用的正则表达式: 匹配中文字符的正则表达式: u4e00-u9fa5 110 说明:该表达式可以用来将一段文本中的中英文分离。 匹配双字节字符(包括汉字在

10、内):x00-xff 说明:该表达式可以用来计算字符串的长度。 匹配空白行的正则表达式:ns*r 说明:该表达式可以用来删除空白行。 匹配 Email 地址的正则表达式:w+(-+.w+)*w+(-.w+)*.w+(-.w+)* 说明:该表达式在表单验证时很实用。 匹配 ip 地址:d+.d+.d+.d+ 说明:提取 ip 地址时有用 Visual Basic.NET 提供了强大且富有灵活性的正则表达式功能。在 VB.NET 中进行正则表达式编程的基础构建于 System.Text.RegularExpressions 命名空间之上,该命名空间属于.NET 架构库类(Framework Cla

11、ss Library)的一部分。 下面根据我们的实际应用情况,截取一段代码作为例子演示一下。 Imports System.Text.RegularExpressions oDocument = oWordApplic.Documents.Open oRange = oDocument.Range (打开 Word 文档或其它文档,读取其中内容,放入 oRange 中) Dim myRegex as Regex (代码(代码 1) myRegex=New Regex(row.Item(“fName“) & “.*任.*“ & row.Item(“fFullName“) (代码代码 2) (可定

12、义多个正则表达式规则) dataTable=SqlOperation.ExectueQuery(“Select * from table”) For Each datarow In dataTable.Rows If myRegex.Match(oRange.Text).Value()“ Then3 Return True End IF Next 其中代码 1 和 2 声明并定义了一个正则表达式, 该表达式代表着我们需要查找匹配的字符模式,即“某某”人如何“任”何处的“某某”职务的文本内容;代码 3 表示匹配成功的情况。 4 结束语结束语 由于正则表达式非常简洁, 使文本的处理变得简单和有章可循。 当然正则表达式涉及的范围很广,操作的形式多种多样,本文只是接触了其中较初级的一部分,更多的应用还有待我们进一步去深入学习。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号