编辑推荐
正则表达式是一种威力无比强大的武器,可以完成各种复杂的文本处理工作,被称为程序员的“瑞士军刀”。
《正则表达式必知必会(修订版)》是全球程序员公认的正则表达式速成教材。它精选了正则表达式中最常用、最重要的知识,从简单的文本匹配开始,通过简明又实用的示例,循序渐进地介绍更高级的内容,包括回溯引用、前后查找、嵌入条件等。而且书中的内容在保持语言和平台中立的同时,还兼顾了各种平台之间的差异。通过阅读本书,读者能够在轻松的氛围中迅速掌握正则表达式的精髓,并可立即运用所学,解决实际问题。
内容简介
正则表达式是一种威力无比强大的武器,可以完成各种复杂的文本处理工作,被称为程序员的“瑞士军刀”。
《正则表达式必知必会(修订版)》是全球程序员公认的正则表达式速成教材。它精选了正则表达式中最常用、最重要的知识,从简单的文本匹配开始,通过简明又实用的示例,循序渐进地介绍更高级的内容,包括回溯引用、前后查找、嵌入条件等。而且书中的内容在保持语言和平台中立的同时,还兼顾了各种平台之间的差异。通过阅读本书,读者能够在轻松的氛围中迅速掌握正则表达式的精髓,并可立即运用所学,解决实际问题。
更多精彩,点击进入品牌店查阅>>
作者简介
《正则表达式必知必会(修订版)》从简单的文本匹配开始,循序渐进地介绍了很多复杂内容,其中包括回溯引用、条件性求值和前后查找,等等。每章都为读者准备了许多简明又实用的示例,有助于全面、系统、快速掌握正则表达式,并运用它们去解决实际问题。正则表达式是一种威力比强大的武器,几乎在所有的程序设计语言里和计算机平台上都可以用它来完成各种复杂的文本处理工作。而且《正则表达式必知必会(修订版)》的内容在保持语言和平台中立的同时,还兼顾了各种平台之间的差异。通过阅读本书,读者能够在轻松的氛圉中迅速掌握正则表达式的精髓,并可立即运用所学,解决实际问题。
精彩书评
BenForta,拥有三十多年的计算机领域从业经验,是世界知名的技术作家,也是Adobe技术界知名专家,目前担任Adobe公司的客户培训部高级主管。他撰写的《SQL必知必会》《MySQL必知必会》等因短小精悍、可快速入手而受到读者好评,已被翻译为十几种文字。
目录
第1章正则表达式入门1.1正则表达式的用途1.2如何使用正则表达式1.2.1用正则表达式进行搜索1.2.2用正则表达式进行替换1.3什么是正则表达式1.4使用正则表达式1.5在继续学习之前1.6小结
第2章匹配单个字符2.1匹配纯文本2.1.1有多个匹配结果2.1.2字母的大小写问题2.2匹配任意字符2.3匹配特殊字符2.4小结
第3章匹配一组字符3.1匹配多个字符中的某一个3.2利用字符集合区间3.3取非匹配3.4小结
第4章使用元字符4.1对特殊字符进行转义4.2匹配空白字符4.3匹配特定的字符类别4.3.1匹配数字(与非数字)4.3.2匹配字母和数字(与非字母和数字)4.3.3匹配空白字符(与非空白字符)4.3.4匹配十六进制或八进制数值4.4使用POSIX字符类4.5小结
第5章重复匹配5.1有多少个匹配5.1.1匹配一个或多个字符5.1.2匹配零个或多个字符5.1.3匹配零个或一个字符5.2匹配的重复次数5.2.1为重复匹配次数设定一个精确的值5.2.2为重复匹配次数设定一个区间5.2.3匹配"至少重复多少次"5.3防止过度匹配5.4小结
第6章位置匹配6.1边界6.2单词边界6.3字符串边界
6.4小结第7章使用子表达式7.1什么是子表达式7.2子表达式7.3子表达式的嵌套7.4小结
第8章回溯引用:前后一致匹配8.1回溯引用有什么用8.2回溯引用匹配8.3回溯引用在替换操作中的应用8.4小结
第9章前后查找9.1前后查找9.2向前查找9.3向后查找9.4把向前查找和向后查找结合起来9.5对前后查找取非9.6小结
第10章嵌入条件10.1为什么要嵌入条件10.2正则表达式里的条件10.2.1回溯引用条件10.2.2前后查找条件10.3小结
附录A常见应用软件和编程语言中的正则表达式附录B常见问题的正则表达式解决方案附录C正则表达式测试器
精彩书摘
9.5对前后查找取非 到目前为止正如你看到的那样,向前查找和向后查找通常用来匹配文本,其目的是为了确定将被返回为匹配结果的文本的位置(通过指定匹配结果的前后必须是哪些文本)。这种用法被称为正向前查找(positivelookahead)和正向后查找(positive lookbehind)。术语“正”指的是寻找匹配的事实。 前后查找还有一种不太常见的用法叫作负前后查找(negativelookaround)。负向前查找(negative lookahead)将向前查找不与给定模式相匹配的文本,负向后查找(negative lookbehind)将向后查找不与给定模式相匹配的文本。 我们在第3章曾经介绍过一个用来对字符集合进行取非处理的操作符;,但;不能用来对前后查找进行取非处理。这里必须使用另外一种语法:前后查找必须用!来取非(它将替换掉=)。表9—1列出了所有的前后查找操作符。
前言/序言
正则表达式(regularexpression)和正则表达式语言已经出现很多年了。正则表达式的专家们早就掌握了这种威力无比强大的武器,它可以用来完成各种复杂的文本处理工作。更重要的是,这种武器可以在几乎所有的程序设计语言里和几乎所有的计算机平台上使用。
这是个好消息,但我还要告诉你一个坏消息:长期以来,只有一些真正的专家才能真正掌握正则表达式。甚至有很多人根本没有听说过正则表达式这个概念,更不用说用它们来解决问题了。至于少数勇于涉猎正则表达式领域的人们,又往往会因为正则表达式难以理解而浅尝辄止或总是在原地徘徊。这不能不说是一种悲哀,因为正则表达式其实并没有人们想象中的那么复杂。只要你能清晰地理解你想要解决的问题并学会如何使用正则表达式,就可以轻而易举地解决这些问题。
正则表达式不为大多数人所掌握的原因之一是关于这方面的好资料太少了。虽然有很多网站在吹嘘它们的正则表达式教程如何全面,但实际情况却是高质量的正则表达式学习资源相当稀缺。即便能够找到几本介绍正则表达式的书,它们又往往过于偏重语法而显得不够实用——知道如何定义{或是知道+与*之间的区别并不等于真正掌握了正则表达式的用法。在笔者看来,那些书反而把简单的问题弄得更复杂了:在学习和使用正则表达式的时候,重要的并不是你知道多少个特殊字符,而是你会不会运用它们去解决实际问题。
你拿在手里的这本书并不打算成为一本正则表达式的大全。如果你想要的是那样一本书,你应该去阅读JeffreyFriedl编写的《精通正则表达式(第3版)》。Friedl先生是业内公认的正则表达式专家,他的书绝对是这方面最权威和全面的著作。本人对Friedl先生没有丝毫成见,但他的书不适合初学者也是实情;如果你只打算尽快完成手头的工作而不是要钻研正则表达式的内部原理,他的书也不很适用。这并不是说那本书里的信息没有用,只是它在你想要给HTML表单添加一些验证功能或者只想对解析的文本进行替换的时候派不上什么用场。如果你想尽快学会正则表达式的基本用法,你将发现自己陷入了一个两难境地:要么找不到简明易学的参考资料,要么找到的参考资料过于深奥而让你不知该如何起步。
这正是促使笔者编写本书的原因。本书所讲授的正则表达式知识正是你们在刚起步时最需要的,我们将从简单的文本匹配开始循序渐进地向大家介绍许多复杂的专题,其中包括回溯引用(backreference)、条件性求值(conditionalevaluation)和前后查找(lookingaround)等。本书最大的优势是所学到的知识可以立即运用于实践中:我们在每章里都为大家准备了许多简明又实用的示例,可以帮助你全面、系统、快速地掌握正则表达式并运用它们去解决实际问题,而每章在10分钟甚至更短的时间里就可以学完。
还等什么,赶快翻到第1章开始今天的学习吧,你肯定会立刻感受到正则表达式的强大威力。
目标读者
本书的目标读者是以下几类人员。
第一次接触正则表达式。
希望自己能够快速掌握正则表达式的基本用法。
想使用一种强大的工具(虽然它不那么容易掌握)去解决实际问题。
正在开发Web应用软件并需要进行复杂的表单和文本处理。
正使用着Perl、ASP、VisualBasic、.NET、C#、Java、JSP、PHP、ColdFusion语言(或更多其他程序设计语言),希望在开发的应用程序里使用正则表达式。
希望在不求助于其他人的前提下尽快掌握正则表达式。
正则表达式必知必会(修订版) 下载 mobi epub pdf txt 电子书 格式