正则表达式入门经典
基本信息
- 原书名: Beginning Regular Expressions
- 原出版社: Wrox
内容简介回到顶部↑
正则表达式能够帮助用户和开发人员更加有效地查找和操纵文本内容。而且,正则表达式已经得到了许多脚本语言、编程语言和数据库的良好支持。这本示例丰富的教程将打破所谓正则表达式难以掌握的传统神话。本书详细解释了正则表达式的各个组成部分、这些组成部分的含义、如何使用它们,以及在编写正则表达式时如何避免常见的错误。
通过逐章地讲解如何在流行的windows平台的软件——包括数据库、跨平台的脚本语言和编程语言中使用正则表达式,你将学习到如何有效地驾驭正则表达式所提供的强大功能,并且全面理解正则表达式的高度灵活性和无限潜能。
通过逐章地讲解如何在流行的windows平台的软件——包括数据库、跨平台的脚本语言和编程语言中使用正则表达式,你将学习到如何有效地驾驭正则表达式所提供的强大功能,并且全面理解正则表达式的高度灵活性和无限潜能。
目录回到顶部↑
第1章 正则表达式概述
第2章 正则表达式工具和使用方法
第3章 简单的正则表达式
第4章 元字符和修饰符
第5章 字符类
第6章 字符串、行和词边界
第7章 正则表达式中的圆括号
第8章 向前查找和向后查找
第9章 正则表达式的灵敏度和特殊性
第10章 说明和调试正则表达式
第11章 在microsoft word中使用正则表达式
第12章 在staroffice/openoffice.org writer中使用正则表达式
第13章 通过findstr使用正则表达式
第14章 powergrep
第15章 microsoft excel中的通配符
第16章 sql server 2000中的正则表达式功能
第17章 在mysql中使用正则表达式
第18章 正则表达式与microsoft access
第19章 jscdpt和javascript中的正则表达式
第20章 正则表达式与vbs
第2章 正则表达式工具和使用方法
第3章 简单的正则表达式
第4章 元字符和修饰符
第5章 字符类
第6章 字符串、行和词边界
第7章 正则表达式中的圆括号
第8章 向前查找和向后查找
第9章 正则表达式的灵敏度和特殊性
第10章 说明和调试正则表达式
第11章 在microsoft word中使用正则表达式
第12章 在staroffice/openoffice.org writer中使用正则表达式
第13章 通过findstr使用正则表达式
第14章 powergrep
第15章 microsoft excel中的通配符
第16章 sql server 2000中的正则表达式功能
第17章 在mysql中使用正则表达式
第18章 正则表达式与microsoft access
第19章 jscdpt和javascript中的正则表达式
第20章 正则表达式与vbs
前言回到顶部↑
大量的商业和其他数据都是以文本形式保存的。因此,对文本进行搜索和操作也就成为了所有开发人员要从事的最重要的活动。正则表达式,无论对用户还是对开发人员而言都是一种最强大的工具。通过使用正则表达式,可以使得查找和操作文本更加有效,而且效率也更高。.
事实上,许多开发人员对正则表达式都有一种谈虎色变的感觉,这种感觉从某种程度上来说也很正常。由于正则表达式非常简洁,所以常常会令人产生神秘感。而改变一个字符就可以从根本上改变正则表达式的含义。这些困难会使开发人员常常感到无法完全掌控自己的正则表达式代码。更糟糕的是,当他们要修改别人编写的正则表达式代码时总会感到无所适从。导致这种糟糕局面的一个原因是许多开发人员都没有对自己编写的正则表达式代码给予充分的说明。然而,如果把正则表达式分解成更小的组件,并认真思考你希望它们帮你做什么,那么正则表达式就会成为极其有用的工具(事实上应该是一种必备工具)。
本书的目的就是要帮助你克服学习正则表达式的障碍,并让你在理解正则表达式的能力与不足的基础上有效地发挥它的优势。
谁适合阅读本书
《正则表达式入门经典》适合那些需要操作文本但对正则表达式并不了解的开发人员,也适合那些曾经尝试使用过正则表达式,但却因为某些专家不了解新手需求而制定了不切实际的学习曲线,从而导致无法继续前进的开发人员。
阅读本书的开发人员应该使用Windows操作系统。因此,不需要理解如何在Unix中使用正则表达式。本书中出现的所有语言和工具都可以在Windows中运行,而其中的某些版本也能在其他平台中运行。
本书会以你可能已经知道的知识作为起点,比如当执行命令行文件搜索时使用*和?字符。随着相关知识的丰富,你会看到一些贴近实际的例子,而对这些例子稍加修改就能将其用于解决你所遇到的实际问题。
无论你是一名临时的程序员,还就是一个从未使用过正则表达式的人,你都会学习到正则表达式的构成部件、这些部件的含义、用法以及在使用它们时应该知道的缺陷。而书中有效的实例构成了学习创建、理解和使用正则表达式的核心内容。书中大多数章节都包含一些“试一试”部分,用于展示如何让正则表达式工作。而每个“试一试”部分都会带有对应的“工作原理”部分或者其他说明,用以解释正则表达式的工作原理。
本书包含的内容
本书主要介绍了构成正则表达式模式的各个部件,解释了这些部件的含义,并通过实例演示了正则表达式的作用,同时解释了相应的工作原理。通过学习这些实例,你将充分理解如何让正则表达式完成你想做的事,而避免编写不能实现你的意图的正则表达式。第1章对正则表达式进行了概述,并介绍了如何把一个文本操作问题分解为几个构成部分,以便在构建需要匹配目标内容的正则表达式时做出明智的选择,从而避免匹配不想要的文本。为了解决更复杂的问题,最好从“问题定义”出发,然后逐渐按照人的思维对问题的表达进行不断提炼,最终使其在某种程度上达到构造所需正则表达式的要求。本书的第二部分用一章的篇幅集中介绍了在Windows平台中可用的一些技术。在这一章中,你会看到如何通过各种工具或语言来使用正则表达式(例如,在Perl语言中如何实现向前查找,或在C#中如何创建命名变量等)。正则表达式对于像Microsoft Word、OpenOffice.org Writer、Microsoft Excel和Microsoft Access这样的应用程序而言也是很有用的。上述每个应用程序都有专门的一章来介绍正则表达式在其中的应用。另外,对于像Windows系统下鲜为人知的findstr实用程序和商业性的PowerGrep这样的工具,也都分别有一章来介绍如何通过它们解决跨文件的文本操作问题。而正则表达式在MySQL和Microsoft SQL Server数据库中的用法同样也是本书中内容的一部分。至于几种常用的编程语言,本书也都通过独立的章节对这些语言中有效元字符的用法给予了说明。同时也对如何在正则表达式中使用相应语言的对象或类给出了丰富的例子。这些语言包括:VBScript、JScript、VisualBasic.NET、C#、PHP、Java和Perl。XML越来越多地被用于存储文本化的数据。W3C的XMLSchema定义语言能够使用正则表达式自动验证XML文档中的数据。W3C的XMLSchema也占据了本书一章的篇幅,其中重点介绍了如何通过xs:pattem元素使用正则表达式的内容。
本书是如何组织的
本书的1~10章分别介绍了构成正则表达式模式的各个部件、这些部件的作用以及它们在多种文本操作工具和语言中的用法。建议按顺序依次阅读这几章的内容,以便对正则表达式建立起全面系统的理解。然后,本书的每一章分别专门介绍了一种文本操作工具或者编程语言。这些章中的内容都假设你已经掌握了1~10章中的知识。但是你可以根据自己的喜好,针对具体的工具或语言分别加以研究,而不必拘泥于各章的前后顺序。
基于本书的这种组织方式,你可以将1~10章中的内容作为掌握正则表达式的必备知识。而对于剩下的那些章节,则可以根据自己使用过的或者必须要在某个特殊项目中使用的技术,来具体选择学以致用的内容。
许多开发人员都曾有过被要求使用一门他们并未完全掌握的语言去编程的经历。而本书针对每种编程语言的章节中都提供了丰富的实例代码,这样你就可以在适当的时候把它
们派上用场。
使用本书的要求..
本书适用于多种工具和编程语言。1~10章中的例子也涉及到从Microsoft Word和OpenOffice.org Writer到PowerGrep、Java和Perl等多种工具和语言。
本书的读者对象主要是Windows用户和开发人员。不过,本书中的很多内容也适用于其他平台的开发人员。
本书中涉及的这些工具和技术,很可能不会全都用到。例如,在正常情况下几乎不可能有人同时使用JScript、Perl、C#、Java和PHP编程。根据你感兴趣的语言,我们会假定你已经安装了相应的工具。不过,对于可以免费试用或免费下载的软件,我们都会为你提供取得它们以及在Windows系统中安装它们的相关信息。
源代码
事实上,许多开发人员对正则表达式都有一种谈虎色变的感觉,这种感觉从某种程度上来说也很正常。由于正则表达式非常简洁,所以常常会令人产生神秘感。而改变一个字符就可以从根本上改变正则表达式的含义。这些困难会使开发人员常常感到无法完全掌控自己的正则表达式代码。更糟糕的是,当他们要修改别人编写的正则表达式代码时总会感到无所适从。导致这种糟糕局面的一个原因是许多开发人员都没有对自己编写的正则表达式代码给予充分的说明。然而,如果把正则表达式分解成更小的组件,并认真思考你希望它们帮你做什么,那么正则表达式就会成为极其有用的工具(事实上应该是一种必备工具)。
本书的目的就是要帮助你克服学习正则表达式的障碍,并让你在理解正则表达式的能力与不足的基础上有效地发挥它的优势。
谁适合阅读本书
《正则表达式入门经典》适合那些需要操作文本但对正则表达式并不了解的开发人员,也适合那些曾经尝试使用过正则表达式,但却因为某些专家不了解新手需求而制定了不切实际的学习曲线,从而导致无法继续前进的开发人员。
阅读本书的开发人员应该使用Windows操作系统。因此,不需要理解如何在Unix中使用正则表达式。本书中出现的所有语言和工具都可以在Windows中运行,而其中的某些版本也能在其他平台中运行。
本书会以你可能已经知道的知识作为起点,比如当执行命令行文件搜索时使用*和?字符。随着相关知识的丰富,你会看到一些贴近实际的例子,而对这些例子稍加修改就能将其用于解决你所遇到的实际问题。
无论你是一名临时的程序员,还就是一个从未使用过正则表达式的人,你都会学习到正则表达式的构成部件、这些部件的含义、用法以及在使用它们时应该知道的缺陷。而书中有效的实例构成了学习创建、理解和使用正则表达式的核心内容。书中大多数章节都包含一些“试一试”部分,用于展示如何让正则表达式工作。而每个“试一试”部分都会带有对应的“工作原理”部分或者其他说明,用以解释正则表达式的工作原理。
本书包含的内容
本书主要介绍了构成正则表达式模式的各个部件,解释了这些部件的含义,并通过实例演示了正则表达式的作用,同时解释了相应的工作原理。通过学习这些实例,你将充分理解如何让正则表达式完成你想做的事,而避免编写不能实现你的意图的正则表达式。第1章对正则表达式进行了概述,并介绍了如何把一个文本操作问题分解为几个构成部分,以便在构建需要匹配目标内容的正则表达式时做出明智的选择,从而避免匹配不想要的文本。为了解决更复杂的问题,最好从“问题定义”出发,然后逐渐按照人的思维对问题的表达进行不断提炼,最终使其在某种程度上达到构造所需正则表达式的要求。本书的第二部分用一章的篇幅集中介绍了在Windows平台中可用的一些技术。在这一章中,你会看到如何通过各种工具或语言来使用正则表达式(例如,在Perl语言中如何实现向前查找,或在C#中如何创建命名变量等)。正则表达式对于像Microsoft Word、OpenOffice.org Writer、Microsoft Excel和Microsoft Access这样的应用程序而言也是很有用的。上述每个应用程序都有专门的一章来介绍正则表达式在其中的应用。另外,对于像Windows系统下鲜为人知的findstr实用程序和商业性的PowerGrep这样的工具,也都分别有一章来介绍如何通过它们解决跨文件的文本操作问题。而正则表达式在MySQL和Microsoft SQL Server数据库中的用法同样也是本书中内容的一部分。至于几种常用的编程语言,本书也都通过独立的章节对这些语言中有效元字符的用法给予了说明。同时也对如何在正则表达式中使用相应语言的对象或类给出了丰富的例子。这些语言包括:VBScript、JScript、VisualBasic.NET、C#、PHP、Java和Perl。XML越来越多地被用于存储文本化的数据。W3C的XMLSchema定义语言能够使用正则表达式自动验证XML文档中的数据。W3C的XMLSchema也占据了本书一章的篇幅,其中重点介绍了如何通过xs:pattem元素使用正则表达式的内容。
本书是如何组织的
本书的1~10章分别介绍了构成正则表达式模式的各个部件、这些部件的作用以及它们在多种文本操作工具和语言中的用法。建议按顺序依次阅读这几章的内容,以便对正则表达式建立起全面系统的理解。然后,本书的每一章分别专门介绍了一种文本操作工具或者编程语言。这些章中的内容都假设你已经掌握了1~10章中的知识。但是你可以根据自己的喜好,针对具体的工具或语言分别加以研究,而不必拘泥于各章的前后顺序。
基于本书的这种组织方式,你可以将1~10章中的内容作为掌握正则表达式的必备知识。而对于剩下的那些章节,则可以根据自己使用过的或者必须要在某个特殊项目中使用的技术,来具体选择学以致用的内容。
许多开发人员都曾有过被要求使用一门他们并未完全掌握的语言去编程的经历。而本书针对每种编程语言的章节中都提供了丰富的实例代码,这样你就可以在适当的时候把它
们派上用场。
使用本书的要求..
本书适用于多种工具和编程语言。1~10章中的例子也涉及到从Microsoft Word和OpenOffice.org Writer到PowerGrep、Java和Perl等多种工具和语言。
本书的读者对象主要是Windows用户和开发人员。不过,本书中的很多内容也适用于其他平台的开发人员。
本书中涉及的这些工具和技术,很可能不会全都用到。例如,在正常情况下几乎不可能有人同时使用JScript、Perl、C#、Java和PHP编程。根据你感兴趣的语言,我们会假定你已经安装了相应的工具。不过,对于可以免费试用或免费下载的软件,我们都会为你提供取得它们以及在Windows系统中安装它们的相关信息。
源代码
书摘回到顶部↑
第1章正则表达式概述
文本是很多人在使用计算机时要面对的重要内容。无论是编写文档还是编辑代码,文本几乎无处不在。网页通常就是由大量文本组成的,其中一部分是由超文本标记语言(Hypertext Markup Language,HTML)或可扩展超文本标记语言(Extensible Hypertext Markuo Language,XHTML)标记的,其他则是常规性文本。而所有这些文本组合到一起就构成了可以通过正则表达式进行匹配的字符序列。Web页面中的表单可以接受文本作为输入,这些文本需要根据输入条件进行匹配。商业文档是由文本组成的,对其中特殊文本序列的搜索同样可以通过正则表达式实现。电子邮件内容和开发人员编写的代码是由文本组成的。而正则表达式对很多要处理文本的情况都是适用的。
文本不仅随处可见、数量庞大,而且还必须保证对文本内容及时更新或整合。在创建了大量的文本内容后,随着存取频率的增加,需要一种有效而且高效的手段去查找特别关注的文本,或者修改特定的文本块。
在长度只有一两页的单个文档中查找和替换个别文本块一般都很简单。但是如果要处理的文档很多,而每个文档都长达数百页或者都有数以千计的相关短文档,那么同样的查找和替换就会变成一件可怕的任务,而且极有可能导致人为错误。对于此类任务,就可以用正则表达式来处理,因为正则表达式可以实现多种有用的文本处理形式的自动化。
比如说,对一个Web表单中的信用卡号码进行验证以保证结构正确,或保证邮政编码的格式正确。在一份冗长的文档中,想找到一个重要信息源的链接,但却记不清URL地址了。你可能希望转换HTML代码,以便使其符合可扩展标记语言(eXtensible Markup Language,XML)的语法规则并遵守公司使用XHTML代码的制度。你还可能希望对用户在Windows应用程序中的输入进行检查,以保证输入满足必需的条件进而得以正确地处理。
……
文本是很多人在使用计算机时要面对的重要内容。无论是编写文档还是编辑代码,文本几乎无处不在。网页通常就是由大量文本组成的,其中一部分是由超文本标记语言(Hypertext Markup Language,HTML)或可扩展超文本标记语言(Extensible Hypertext Markuo Language,XHTML)标记的,其他则是常规性文本。而所有这些文本组合到一起就构成了可以通过正则表达式进行匹配的字符序列。Web页面中的表单可以接受文本作为输入,这些文本需要根据输入条件进行匹配。商业文档是由文本组成的,对其中特殊文本序列的搜索同样可以通过正则表达式实现。电子邮件内容和开发人员编写的代码是由文本组成的。而正则表达式对很多要处理文本的情况都是适用的。
文本不仅随处可见、数量庞大,而且还必须保证对文本内容及时更新或整合。在创建了大量的文本内容后,随着存取频率的增加,需要一种有效而且高效的手段去查找特别关注的文本,或者修改特定的文本块。
在长度只有一两页的单个文档中查找和替换个别文本块一般都很简单。但是如果要处理的文档很多,而每个文档都长达数百页或者都有数以千计的相关短文档,那么同样的查找和替换就会变成一件可怕的任务,而且极有可能导致人为错误。对于此类任务,就可以用正则表达式来处理,因为正则表达式可以实现多种有用的文本处理形式的自动化。
比如说,对一个Web表单中的信用卡号码进行验证以保证结构正确,或保证邮政编码的格式正确。在一份冗长的文档中,想找到一个重要信息源的链接,但却记不清URL地址了。你可能希望转换HTML代码,以便使其符合可扩展标记语言(eXtensible Markup Language,XML)的语法规则并遵守公司使用XHTML代码的制度。你还可能希望对用户在Windows应用程序中的输入进行检查,以保证输入满足必需的条件进而得以正确地处理。
……







点击看大图


加载中...
