正则表达式从入门到精通
日期:2007年5月3日 作者: 查看:[大字体 中字体 小字体]-
什么是正则表达式 如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。
请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件。? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。一个如 'data?.dat' 的模式可以找到下述文件:data1.dat
data2.dat
datax.dat
dataN.dat如果使用 * 字符代替 ? 字符,则将扩大找到的文件数量。'data*.dat' 可以匹配下述所有文件名:
data.dat
data1.dat
data2.dat
data12.dat
datax.dat
dataXYZ.dat尽管这种搜索文件的方法肯定很有用,但也十分有限。? 和 * 通配符的有限能力可以使你对正则表达式能做什么有一个概念,不过正则表达式的功能更强大,也更灵活。
早期起源
正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。Warren McCulloch 和 Walter Pitts 这两位神经生理学家研究出一种数学方式来描述这些神经网络。
1956 年, 一位叫 Stephen Kleene 的数学家在 McCulloch 和 Pitts 早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。正则表达式就是用来描述他称为“正则集的代数”的表达式,因此采用“正则表达式”这个术语。 随后,发现可以将这一工作应用于使用 Ken Thompson 的计算搜索算法的一些早期研究,Ken Thompson 是 Unix 的主要发明人。正则表达式的第一个实用应用程序就是 Unix 中的 qed 编辑器。
如他们所说,剩下的就是众所周知的历史了。从那时起直至现在正则表达式都是基于文本的编辑器和搜索工具中的一个重要部分。
使用正则表达式
在典型的搜索和替换操作中,必须提供要查找的确切文字。这种技术对于静态文本中的简单搜索和替换任务可能足够了,但是由于它缺乏灵活性,因此在搜索动态文本时就有困难了,甚至是不可能的。
使用正则表达式,就可以:
·测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。
·替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。
·根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。
例如,如果需要搜索整个 web 站点来删除某些过时的材料并替换某些HTML 格式化标记,则可以使用正则表达式对每个文件进行测试,看在该文件中是否存在所要查找的材料或 HTML 格式化标记。用这个方法,就可以将受影响的文件范围缩小到包含要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过时的材料,最后,可以再次使用正则表达式来查找并替换那些需要替换的标记。
另一个说明正则表达式非常有用的示例是一种其字符串处理能力还不为人所知的语言。VBScript 是 Visual Basic 的一个子集,具有丰富的字符串处理功能。与 C 类似的 Jscript 则没有这一能力。正则表达式给 JScript 的字符串处理能力带来了明显改善。不过,可能还是在 VBScript 中使用正则表达式的效率更高,它允许在单个表达式中执行多个字符串操作。
正则表达式语法
一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
这里有一些可能会遇到的正则表达式示例:
- [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页
-
- 正则表达式从入门到精通 相关文章:
- ·Windows XP SP2是否正版原版技巧
- ·Photoshop液化滤镜校正歪斜的人物头像教程
- ·在IE浏览器中正确显示PNG透明图片
- ·诺顿杀毒软件正式版用户找回密码的方法
- ·下载:Opera 9.25最终正式版
- ·Photoshop液化滤镜校正倾斜的人物头像
- ·免费绘图软件Paint.NET推出3.2正式版
- ·Photoshop较正偏色照片
- ·Avant浏览器11.6正式版发布
- ·卡巴斯基® 手机版正式线上发行
- 正则表达式从入门到精通 相关软件
- ·《古墓丽影十周年纪念版》正式版地图任我游工具
- ·《冰封王座》地图:英雄无敌圣战之日V1.07正式版
- ·《冰封王座》地图:幻想群侠传II-3.86正式版
- ·《猎杀潜航3》修改器修正版
- ·《荣誉骑士》热门MHR1.7汉化修正版
- ·《仙剑十年回顾》电子图书(修正版)
- ·《征途》正式版完整客户端下载
- ·《踢踢球》公测正式版完整客户端
- ·正义与邪恶的较量:刑庭法官
- ·秘书长——一场正义与腐败的权利博弈
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
下一篇:成长的烦恼:进一步理解设计模式
精品推荐
热点TOP10
- ·BPEL模型基础
- ·Fedora 8下Apache配置与管理
- ·兵之利器 软件开发辅助工具纵览
- ·多核时代对并发程序设计的探索
- ·Enterprise Web 2.0--SOA的最后一英里
- ·BPEL的基本活动介绍
- ·DB2数据库归档日志的管理方案
- ·Web开发时碰到的问题以及心得经验
- ·基于Struts技术的Web层应用设计和实现
- ·四种网络游戏外挂的设计方法
- ·对一个加锁的表进行解锁
- ·开发WDM型的USB设备驱动程序
- ·软件架构设计的三个维度
- ·什么叫面向接口编程
- ·RPG游戏引擎的设计原理
- ·6.1.2 数据仓库的概念
- ·6.1.1 数据仓库的产生
- ·6.1 数据仓库概论
- ·5.1 Web服务概述
- ·3.7 面向对象编程的基本概念
