作者:empty 页数:661 出版社:empty |
前言大量的商业和其他数据都是以文本形式保存的。因此,对文本进行搜索和操作也就成为了所有开发人员要从事的最重要的活动。正则表达式,无论对用户还是对开发人员而言都是一种最强大的工具。通过使用正则表达式,可以使得查找和操作文本更加有效,而且效率也更高。事实上,许多开发人员对正则表达式都有一种谈虎色变的感觉,这种感觉从某种程度上来说也很正常。由于正则表达式非常简洁,所以常常会令人产生神秘感。而改变一个字符就可以从根本上改变正则表达式的含义。这些困难会使开发人员常常感到无法完全掌控自己的正则表达式代码。更糟糕的是,当他们要修改别人编写的正则表达式代码时总会感到无所适从。导致这种糟糕局面的一个原因是许多开发人员都没有对自己编写的正则表达式代码给予充分的说明。然而,如果把正则表达式分解成更小的组件,并认真思考你希望它们帮你做什么,那么正则表达式就会成为极其有用的工具(事实上应该是一种必备工具)。力与不足的基础上有效地发挥它的优势。本书的目的就是要帮助你克服学习正则表达式的障碍,并让你在理解正则表达式的能谁适合阅读本书员,也适合那些曾经尝试使用过正则表达式,但却因为某些专家不了解新手需求而制定了不切实际的学习曲线,从而导致无法继续前进的开发人员。《正则表达式入门经典》适合那些需要操作文本但对正则表达式并不了解的开发人阅读本书的开发人员应该使用Windows操作系统。因此, 不需要理解如何在Unix中使用正则表达式。本书中出现的所有语言和工具都可以在Windows中运行, 而其中的某些版本也能在其他平台中运行。本书会以你可能已经知道的知识作为起点,比如当执行命令行文件搜索时使用*和?字符。随着相关知识的丰富,你会看到一些贴近实际的例子,而对这些例子稍加修改就能将其用于解决你所遇到的实际问题。本书主要介绍了构成正则表达式模式的各个部件,解释了这些部件的含义,并通过实第1章对正则表达式进行了概述,并介绍了如何把一个文本操作问题分解为几个构成无论你是一名临时的程序员,还就是一个从未使用过正则表达式的人,你都会学习到正则表达式的构成部件、这些部件的含义、用法以及在使用它们时应该知道的缺陷。而书中有效的实例构成了学习创建、理解和使用正则表达式的核心内容。书中大多数章节都包含一些“试一试”部分,用于展示如何让正则表达式工作。而每个“试一试”部分都会带有对应的“工作原理”部分或者其他说明,用以解释正则表达式的工作原理。正则表达式入门经典本书包含的内容例演示了正则表达式的作用,同时解释了相应的工作原理。通过学习这些实例,你将充分理解如何让正则表达式完成你想做的事,而避免编写不能实现你的意图的正则表达式。部分,以便在构建需要匹配目标内容的正则表达式时做出明智的选择,从而避免匹配不想要的文本。
表达进行不断提炼,最终使其在某种程度上达到构造所需正则表达式的要求。一章中, 你会看到如何通过各种工具或语言来使用正则表达式(例如, 在Perl语言中如何实现向前查找,或在C#中如何创建命名变量等)。Microsoft Access这样的应用程序而言也是很有用的。上述每个应用程序都有专门的一章来为了解决更复杂的问题,最好从“问题定义”出发,然后逐渐按照人的思维对问题的本书的第二部分用一章的篇幅集中介绍了在Windows平台中可用的一些技术。在这正则表达式对于像Microsoft Word、Open Offce.org Writer、Microsoft Excel和介绍正则表达式在其中的应用。另外, 对于像Windows系统下鲜为人知的find str实用程序和商业性的Power Grep这样的工具,也都分别有一章来介绍如何通过它们解决跨文件的文本操作问题。而正则表达式在MySQL和Microsoft SQLServer数据库中的用法同样也是本书中内容的一部分。给予了说明。同时也对如何在正则表达式中使用相应语言的对象或类给出了丰富的例子。这些语言包括:VBScript、JScript、VisualBasic.NET、C#、PHP、Java和Perl。至于几种常用的编程语言,本书也都通过独立的章节对这些语言中有效元字符的用法XML越来越多地被用于存储文本化的数据。W3C的XMLSchema定义语言能够使用正则表达式自动验证XML文档中的数据。W3C的XMLSchema也占据了本书一章的篇幅,其中重点介绍了如何通过xs:pattern元素使用正则表达式的内容。本书是如何组织的本书的1~10章分别介绍了构成正则表达式模式的各个部件、这些部件的作用以及它们在多种文本操作工具和语言中的用法。建议按顺序依次阅读这几章的内容,以便对正则表达式建立起全面系统的理解。然后,本书的每一章分别专门介绍了一种文本操作工具或者编程语言。这些章中的内容都假设你已经掌握了1~10章中的知识。但是你可以根据自己的喜好,针对具体的工具或语言分别加以研究,而不必拘泥于各章的前后顺序。基于本书的这种组织方式,你可以将1~10章中的内容作为掌握正则表达式的必备知识。而对于剩下的那些章节,则可以根据自己使用过的或者必须要在某个特殊项目中使用的技术,来具体选择学以致用的内容。
许多开发人员都曾有过被要求使用一门他们并未完全掌握的语言去编程的经历。而本书针对每种编程语言的章节中都提供了丰富的实例代码,这样你就可以在适当的时候把它们派上用场。使用本书的要求本书适用于多种工具和编程语言。1~10章中的例子也涉及到从Microsoft Word和Open Offce.org Writer到Power Grep、Java和Perl等多种工具和语言。于其他平台的开发人员。本书的读者对象主要是Windows用户和开发人员。不过, 本书中的很多内容也适用本书中涉及的这些工具和技术,很可能不会全都用到。例如,在正常情况下几乎不可能有人同时使用JScript、Perl、C#、Java和PHP编程。根据你感兴趣的语言, 我们会假定你已经安装了相应的工具。不过,对于可以免费试用或免费下载的软件,我们都会为你提供取得它们以及在Windows系统中安装它们的相关信息。源代码码。本书中的所有源代码均可在http://www.wrox.com或http://www.tupwk.com.cn/downpage站点下载。登录Web站点http://www.wrox.com后, 只需找到本书的标题(可以使用Search功能或标题列表) 并单击显示本书详细内容的页面上的Download Code链接即可获取源代码。是0-7645-7489-2.是到Wrox代码下载主页面http://www.wrox.com/dynamic/books/download.aspx, 这里有本书如果想参与讨论,可以加入P2P论坛,网址是http:/p2p.wrox.com。这些论坛是基于在http:/p2p.wrox.com中,读者将找到很多不同的论坛,这些论坛不仅能帮助读者阅在练习本书中的示例时,读者可以手动输入所有的代码,也可以使用随书附带的源代由于很多书籍的名称类似, 因此通过ISBN查找可能会更容易一些.本书的ISBN号在下载源代码之后,只需使用最喜欢的解压缩工具对其进行解压缩即可。另一个途径及其他所有Wrox书籍的源代码。勘误表我们尽最大努力确保本书在叙述和代码中没有错误。然而,没有人是完美的,错误时有发生。如果读者在本书中发现什么错误,例如拼写错误或编码错误,我们将会非常感谢您能反馈给我们。通过将错误添加到勘误表中,您也许能为其他读者节约数小时的时间,也可以帮助我们提供更高质量的书籍。书的后续版本中采用。或者使用标题列表。然后, 在本书的详细内容页面上, 单击Book Errata链接。在这个页面正则表达式入门经典上读者可以查看到所有已提交的、由Wrox的编辑发布的错误信息。也可以在htp:/www.wrox.com/misc-pages/booklis.shtml页面找到一个完整的标题列表,这个列表包含了每本书的勘误表链接。(1)登录http:/p2p.wrox.com并单击Register链接。(2) 阅读用途条款并单击Agree。请给wkservice@tup.tsinghua.edu.cn发电子邮件,如果您的意见是正确的,我们将在本要找到本书的勘误表, 可以登录Web站点http://www.wrox.com, 然后搜索本书的书名http://p2p.wrox.comWeb站点的系统, 其作用是让读者发布与Wrox的书籍和相关技术有关的消息, 并与其他读者和技术用户联络。这些论坛提供订阅功能,当读者感兴趣的主题发布时,论坛会通过电子邮件把这些消息发送给读者。Wrox的作家、编辑、其他行业专家及和您一样的读者都会出现在这些论坛上。读本书,还可以帮助读者开发自己的应用程序。要加入这些论坛,可按如下步骤操作:(3) 填写加入论坛所必需的信息和可选信息并单击Submit。(4)读者将收到一封电子邮件,该邮件告诉读者怎样验证账户并成功加入。没有加入P2P论坛也可以阅读该论坛上的信息,但是如果希望发布自己的消息,则必须加入该论坛。加入之后,就可以发布新消息或者回复其他用户发布的消息了。可以在任何时间阅读Web站点上的消息。如果希望某个论坛能将最新的消息通过电子邮件发送给自己, 则可以单击论坛列表中该论坛名称旁边的Subscribe图标。要获得如何使用P2P论坛的更多信息, 可以阅读P2PFAQ列表中的问题及其答复, 这些问题与论坛软件的工作原理及很多与P2P和Wrox相关的常见问题有关。要阅读FAQ,可以单击任意P2P页面上的FAQ链接。
第1章正则表达式概述
1.1什么是正则表达式
1.2可以使用正则表达式做什么4
1.3使用过的正则表达式
2.1.2 Microsoft Word
2.1.3
基于语言和平台的工具
2.2.1
StarOffice WriterOpenOffice.
org Writer.23
Komodo Rx Package23
Power Grep“-24
Microsoft Excel24
JavaScript和JScript 25
VBScript 25
VisualBasic.NET-25
C#25
PHP25
Java26
Perl26
MySQL-26
SQLServer 200026
2.2.10W3C XMLSchema26
使用正则表达式的分析方法27
2.3.1用自然语言来表达
2.3.2数据源及其可能的内容.28
2.3.3可用的正则表达式选项29
2.3.4.29
2.3.5创建适当的正则表达式.30
2.3.6
查找重复的单词
含义不同
区分大小写
解决方案
find str
检查Web表单的输入5
转换日期格式.5
发现错误的拼写5
为URL添加链接.6
在文字处理软件中查找
和替换
目录列表
在线搜索
令人生畏
1.4.1简洁而神秘的语法
1.4.2空格会导致含义改变
1.4.3没有统一的语法标准
1.4.4各种实现之间的差别
1.4.5不同环境下的字符
1.4.6正则表达式可以
1.4.7支持性技术的不断发展14
1.4.8一个问题对应多个
1.4.9使用正则表达式做什么15
支持正则表达式的语言
1.6替换大量文本
第2章正则表达式工具和使用方法18
2.1正则表达式工具
和说明你的意图
灵敏度和特殊性
对除简单正则表达式之外
的正则表达式给予说明.30
测试正则表达式的结果.32
简单的正则表达式34
匹配单个字符34
3.1.1匹配连续的字符序列.38
3.1.2元字符简介40
3.1.3匹配不同的字符序列.45
2.1.1
正则表达式入门经典
3.5
第4章
第8章
匹配可选字符
其他限量操作符
3.3.1*限定符
3.3.2+限定符
大括号语法
3.4.1{n}语法
3.4.2{n,m}语法
3.4.3{0,m}
3.4.4{n,m}
3.4.5{n,}“
练习
元字符和修饰符
正则表达式的元字符·
4.1.1考虑字符和位置
4.1.2句点()元字符一
4.1.3 w元字符
4.1.4 W元字符
4.1.5数字和非数字
空白和非空白元字符·
4.2.1 s元字符
4.2.2处理可选的空白符
4.2.3 S元字符
4.2.4 1元字符
4.2.5 n元字符
4.2.6转义字符
4.2.7查找反斜杠
修饰符
4.3.1全局搜索
4.3.2不区分大小写的搜索
练习
字符类
字符类概述
5.1.1在两个字符中选择
5.1.2对字符类应用限定符
在字符类中使用范围
5.2.1字母字符范围
5.2.2反转字符类的范围
5.2.3潜在的范围陷阱
向前查找和向后查找
8.1为什么需要向前查找和
8.2
8.3肯定式向前查找的例子
查找HTML中的
标题元素
时的编号
10.1.1说明问题定义
10.1.2为代码添加注释
10.1.3利用扩展模式
了解你的数据
10.2.1缩写词
10.2.2固有名字
10.2.3错误的拼写
调试正则表达式
10.4.1叛逆的空白符
10.4.2
10.4.3
在Microsoft Word中
使用正则表达式
字符类中元字符的含义
5.3.1^元字符
5.3.2如何使用-元字符
对字符类取反
POSIX字符类
练习
字符串、行和词边界122
字符串、行和词边界122
6.1.1^元字符123
6.1.2^元字符和多行模式125
6.1.3
$元字符127
什么是词139
识别词边界140
6.3.1语法140
6.3.2
>语法141
6.3.3 b语法143
6.3.4不常见的词边界元字符144
练习144
正则表达式中的圆括号145
使用圆括号分组145
7.1.1圆括号和限定符147
7.1.2.匹配圆括号直接量148
7.1.3美国电话号码的例子148
交替选择150
7.2.1在多个选项中做出选择152
7.2.2错误匹配的交替行为155
捕获圆括号157
7.3.1捕获组的编号157
7.3.2使用嵌套的圆括号
7.3.3命名的组159
非捕获的圆括号·160
反向引用161
重新分析Star Training
Company的例子·200
说明和调试正则表达式205
10.1说明正则表达式205
10.3创建测试用例210
11.1用户界面215
11.2可用的元字符217
11.3例子228
11.4搜索和替换的例子230
11.5VBA中的正则表达式.238
肯定式向前查找
否定式向前查找
在同一文档中使用
肯定式向前查找
4