请输入您要查询的百科知识:

 

词条 精通正则表达式(第3版)
释义

图书信息

作者:佛瑞德(Friedl.J.E.F) (作者), 余晟 (译者)

出版社: 电子工业出版社; 第1版 (2009年7月1日)

平装: 515页

正文语种: 简体中文

开本: 16

ISBN: 9787121046841, 7121046849

条形码: 9787121046841

产品尺寸及重量: 23.2 x 17.6 x 2.8 cm ; 921 g

内容简介

随着互联网的迅速发展,几乎所有工具软件和程序语言都支持的正则表达式也变得越来越强大和易于使用。《精通正则表达式(第3版)》是讲解正则表达式的经典之作。《精通正则表达式(第3版)》主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校措施,并详细介绍了在Perl、Java、.NET、PHP中正则表达式的用法。

《精通正则表达式(第3版)》自第1版开始着力于教会读者 “以正则表达式来思考”,来让读者真正“精通”正则表达式。该版对PHP的相关内容、Java1.5和Java1.6的新特性作了可观的扩充讲解。任何有机会使用正则表达式的读者都将因《精通正则表达式(第3版)》而受益匪浅。

编辑推荐

《精通正则表达式(第3版)》讲解正则表达式,这种工具能够提高工作效率、让生活变得更轻松。精心调校后的正则表达式只需要十多秒就能完成以前数小时才能完成的枯燥任务。如今,正则表达式已经成为众多语言及工具——Perl、PHP、Java、Python、Ruby、MysQL、VB-NET和c#(以及.NETFramework中的任何语言)——中的标准特性,依靠它,你能以之前完全不敢设想的方式进行复杂而精巧的文本处理。十年三版,再显王者风范,近30年开发经验的智慧结晶,深入理解正则表达式,彻底修炼基本功,全球第一本全面深入讲解正则表达式的经典巨著,《程序员》杂志技术主编孟岩鼎力推荐。

专家点评:《精通正则表达式》是系统学习正则表达式的唯一最权威著作。任何时候,任何地方,只要提到正则表达式著作,人们都会提到这本书。该书质量之高,声誉之盛,使得几乎没有人企图挑战它的地位,从而在正则表达式图书领域形成了独特的“一夫当关”的局面,称其为正则表达式圣经,绝对当之无愧。

——《程序员》杂志技术主编孟岩

《精通正则表达式(第3版)》包含了对PHP及其正则表达式的讲解。这一版的更新也反映了其他语言的发展,深入讲解了Sun的java.util.regex,并特别提到了Java1.4.2和Java1.5/1.6之间的众多差异。

本书的内容:

·各种语言和工具的功能比较

·正则引擎的工作原理

·优化(能节省大量的时间)

·准确匹配期望的文本

·针对具体语言的章节

《精通正则表达式(第3版)》,以明晰轻松的笔调向程序员深入浅出地讲解复杂的知识,并给出了现实世界中复杂问题的解决办法,读者能够立刻运用书中丰富的知识,巧妙而高效地解决各种问题。

作者简介

作者:(美国)佛瑞德(Friedl.J.E.F) 译者:余晟

Jeffrey E.F.Friedl生长于俄亥俄州Rootstown的乡村,小时候希望成为天文学家,直到有一天他发现了闲置在化学实验室角落里的TRS-80 Model I(装备了整整16KB RAM)。1980年他终于开始使用Unix(和正则表达式)。在肯特(Kent)大学和新罕布什尔(New Hampshire)大学分别获得计算机学士和硕士学位之后,他在日本京都工作了8年,为欧姆龙公司(Omron Corporation)进行核心开发,1997年迁居硅谷,在当时还不为人知的Yahoo!用正则表达式处理财经新闻和数据。2004年4月他偕妻儿返回京都。

Friedl的闲暇时间很充裕,这时候他喜欢与妻子Fumie和3岁的活蹦乱跳的儿子Anthony一起。他还喜欢拍摄遍布京都的美景,照片在他的blog上:http://regex-info/blog。

目录

前言

第1章正则表达式入门

解决实际问题

作为编程语言的正则表达式

以文件名做类比

以语言做类比

正则表达式的思维框架

对于有部分经验的读者

检索文本文件:Egrep

Egrep元字符

行的起始和结束

字符组

用点号匹配任意字符

多选结构

忽略大小写

单词分界符

小结

可选项元素

其他量词:重复出现

括号及反向引用

神奇的转义

基础知识拓展

语言的差异

正则表达式的目标

更多的例子

正则表达式术语汇总

改进现状

总结

一家之言

第2章入门示例拓展

关于这些例子

Perl简单入门

使用正则表达式匹配文本

向实用的程序前进

成功匹配的副作用

错综复杂的正则表达式

暂停片刻

使用正则表达式修改文本

例子:公函生成程序

举例:修整股票价格

自动的编辑操作

处理邮件的小工具

用环视功能为数值添加逗号

Text-to-HTML转换

回到单词重复问题

第3章正则表达式的特性和流派概览

在正则的世界中漫步

正则表达式的起源

最初印象

正则表达式的注意事项和处理方式

集成式处理

程序式处理和面向对象式处理

查找和替换

其他语言中的查找和替换

注意事项和处理方式:小结

字符串,字符编码和匹配模式

作为正则表达式的字符串

字符编码

Unicode

正则模式和匹配模式

常用的元字符和特性

字符表示法

字符组及相关结构

锚点及其他“零长度断言”

注释和模式量词

分组,捕获,条件判断和控制

高级话题引导

第4章:表达式的匹配原理

发动引擎

两类引擎

新的标准

正则引擎的分类

几句题外话

测试引擎的类型

匹配的基础

关于范例

规则1:优先选择最左端的匹配结果

引擎的构造

规则2:标准量词是匹配优先的

表达式主导与文本主导

NFA引擎:表达式主导

DFA引擎:文本主导

第一想法:比较NFA与DFA

回溯

真实世界中的例子:面包屑

回溯的两个要点

备用状态

回溯与匹配优先

关于匹配优先和回溯的更多内容

匹配优先的问题

多字符“引文”

使用忽略优先量词

匹配优先和忽略优先都期望获得匹配

匹配优先、忽略优先和回溯的要旨

占有优先量词和固化分组

占有优先量词,?+、*+、++和{m,n}+

环视的回溯

多选结构也是匹配优先的吗

发掘有序多选结构的价值

NFA、DFA和POSIX

最左最长规则

POSIX和最左最长规则

速度和效率

小结:NFA与DFA的比较

总结

第5章:正则表达式实用技巧

正则表达式的平衡法则

若干简单的例子

匹配连续行(续前)

匹配IP地址

处理文件名

匹配对称的括号

防备不期望的匹配

匹配分隔符之内的文本

了解数据,做出假设

去除文本首尾的空白字符

HTML相关范例

匹配HTMLTag

匹配HTMLLink

检查HTTPURL

验证主机名

在真实世界中提取URL

扩展的例子

保持数据的协调性

解析CSV文件

第6章:打造高效正则表达式

典型示例

稍加修改——先迈最好使的腿

效率vs准确性

继续前进——限制匹配优先的作用范围

实测

全面考查回溯

POSIXNFA需要更多处理

无法匹配时必须进行的工作

看清楚一点

多选结构的代价可能很高

性能测试

理解测量对象

PHP测试

Java测试

VB-NET测试

Ruby测试

Python测试

Tcl测试

常见优化措施

有得必有失

优化各有不同

正则表达式的应用原理

应用之前的优化措施

通过传动装置进行优化

优化正则表达式本身

提高表达式速度的诀窍

常识性优化

将文字文本独立出来

将锚点独立出来

忽略优先还是匹配优先?具体情况具体分析

拆分正则表达式

模拟开头字符识别

使用固化分组和占有优先量词

主导引擎的匹配

消除循环

方法1:依据经验构建正则表达式

真正的“消除循环”解法

方法2:自顶向下的视角

方法3:匹配主机名

观察

使用固化分组和占有优先量词

简单的消除循环的例子

消除C语言注释匹配的循环

流畅运转的表达式

引导匹配的工具

引导良好的正则表达式速度很快完工

总结:开动你的大脑

第7章:Perl

作为语言组件的正则表达式

Perl的长处

Perl的短处

Perl的正则流派

正则运算符和正则文字

正则文字的解析方式

正则修饰符

正则表达式相关的Perl教义

表达式应用场合

动态作用域及正则匹配效应

匹配修改的特殊变量

qr//运算符与regex对象

构建和使用regex对象

探究regex对象

用regex对象提高效率

Match运算符

Match的正则运算元

指定目标运算元

Match运算符的不同用途

迭代匹配:ScalarContext,不使用/g

Match运算符与环境的关系

Substitution运算符

运算元replacement

/e修饰符

应用场合与返回值

Split运算符

Split基础知识

返回空元素

Split中的特殊Regex运算元

Split中带捕获型括号的match运算元

巧用Perl的专有特性

用动态正则表达式结构匹配嵌套结构

使用内嵌代码结构

在内嵌代码结构中使用local函数

关于内嵌代码和my变量的忠告

使用内嵌代码匹配嵌套结构

正则文字重载

正则文字重载的问题

模拟命名捕获

效率

办法不只一种

表达式编译、/o修饰符、qr/···/和效率

理解“原文”副本

Study函数

性能测试

正则表达式调试信息

结语

第8章:Java

Java的正则流派

Java对\\p{}和\\P{}的支持

Unicode行终结符

使用java.util.regex

ThePattern.compile()Factory

Pattern的matcher方法

Matcher对象

应用正则表达式

查询匹配结果

简单查找-替换

高级查找-替换

原地查找-替换

Matcher的检索范围

方法链

构建扫描程序

Matcher的其他方法

Pattern的其他方法

Pattern的split方法,单个参数

Pattern的split方法,两个参数

拓展示例

为ImageTag添加宽度和高度属性

对于每个Matcher,使用多个Pattern校验HTML

解析CSV文档

Java版本差异

1.4.2 和1.5.0之间的差异

1.5.0和1.6 之间的差异

第9章:.NET

.NET的正则流派

对于流派的补充

使用.NET正则表达式

正则表达式快速入门

包概览

核心对象概览

核心对象详解

创建Regex对象

使用Regex对象

使用Match对象

使用Group对象

静态“便捷”函数

正则表达式缓存

辅助函数

.NET高级话题

正则表达式装配件

匹配嵌套结构

Capture对象

第10章:PHP

PHP的正则流派

Preg函数接口

“Pattern”参数

Preg函数罗列

preg_match

preg_match_all

preg_replace

preg_replace_callback

preg_split

preg_grep

preg_quote

“缺失”的preg函数

preg_regex_to_pattern

对未知的Pattern参数进行语法检查

对未知正则表达式进行语法检查

递归的正则表达式

匹配嵌套括号内的文本

不能回溯到递归调用之内

匹配一组嵌套的括号

PHP效率

模式修饰符S:“研究”

扩展示例

用PHP解析CSV

检查taggeddata的嵌套正确性

索引

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/11/15 18:48:30