术语汇编全面剖析Perl正则表达式用法

本文和大家重点讨论一下Perl正则表达式的概念以及它的起源,Perl正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。Perl正则表达式的作用也很明显,其中之一就是它可以测试字符串的某个模式,至于其他作用请看本文详细介绍。

创新互联服务项目包括平泉网站建设、平泉网站制作、平泉网页制作以及平泉网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,平泉网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到平泉省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

Perl正则表达式简介

1.Perl正则表达式

如果原来没有使用过Perl正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。

请回想一下在硬盘上是如何查找文件的。您肯定会使用?和*字符来帮助查找您正寻找的文件。?字符匹配文件名中的单个字符,而*则匹配一个或多个字符。一个如'data?.dat'的模式可以找到下述文件:

data1.dat

data2.dat

datax.dat

dataN.dat

如果使用*字符代替?字符,则将扩大找到的文件数量。'data*.dat'可以匹配下述所有文件名:

data.dat

data1.dat

data2.dat

data12.dat

datax.dat

dataXYZ.dat

尽管这种搜索文件的方法肯定很有用,但也十分有限。?和*通配符的有限能力可以使你对Perl正则表达式能做什么有一个概念,不过Perl正则表达式的功能更强大,也更灵活。

2.早期起源

早期起源

Perl正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。WarrenMcCulloch和WalterPitts这两位神经生理学家研究出一种数学方式来描述这些神经网络。

1956年,一位叫StephenKleene的美国数学家在McCulloch和Pitts早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了Perl正则表达式的概念。Perl正则表达式就是用来描述他称为“正则集的代数”的表达式,因此采用“Perl正则表达式”这个术语。

随后,发现可以将这一工作应用于使用KenThompson的计算搜索算法的一些早期研究,KenThompson是Unix的主要发明人。Perl正则表达式的***个实用应用程序就是Unix中的qed编辑器。

如他们所说,剩下的就是众所周知的历史了。从那时起直至现在Perl正则表达式都是基于文本的编辑器和搜索工具中的一个重要部分。

3.使用Perl正则表达式

在典型的搜索和替换操作中,必须提供要查找的确切文字。这种技术对于静态文本中的简单搜索和替换任务可能足够了,但是由于它缺乏灵活性,因此在搜索动态文本时就有困难了,甚至是不可能的。

使用Perl正则表达式,就可以:

1.测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。

2.替换文本。可以在文档中使用一个Perl正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。

3.根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。

例如,如果需要搜索整个web站点来删除某些过时的材料并替换某些HTML格式化标记,则可以使用Perl正则表达式对每个文件进行测试,看在该文件中是否存在所要查找的材料或HTML格式化标记。用这个方法,就可以将受影响的文件范围缩小到包含要删除或更改的材料的那些文件。然后可以使用Perl正则表达式来删除过时的材料,***,可以再次使用Perl正则表达式来
查找并替换那些需要替换的标记。

另一个说明Perl正则表达式非常有用的示例是一种其字符串处理能力还不为人所知的语言。VBScript是VisualBasic的一个子集,具有丰富的字符串处理功能。与C类似的VisualBasicScriptingEdition则没有这一能力。Perl正则表达式给VisualBasicScriptingEdition的字符串处理能力带来了明显改善。不过,可能还是在VBScript中使用Perl正则表达式的
效率更高,它允许在单个表达式中执行多个字符串操作。

分享名称:术语汇编全面剖析Perl正则表达式用法
链接URL:http://www.shufengxianlan.com/qtweb/news15/287065.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联