Kindle之家

精通正则表达式

作者:Jeffrey E·F·Friedl

豆瓣评分:★★★★☆ 9.3

出版时间:2012-7

ISBN:9787121175015

电子书格式:epub,mobi,azw3

更新时间:2个月前  67 ℃

电子书详细介绍

精通正则表达式 第1张

基本信息  · · · · · ·

作者:[美]JeffreyE·F·Friedl

出版社:电子工业出版社

副标题:第3版

译者:余晟

出版年:2012-7

页数:515

装帧:平装

ISBN:9787121175015

内容简介  · · · · · ·

《精通正则表达式(第3版)》内容简介:随着互联网的迅速发展,几乎所有工具软件和程序语言都支持的正则表达式也变得越来越强大和易于使用。《精通正则表达式(第3版)》是讲解正则表达式的经典之作。《精通正则表达式(第3版)》主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校措施,并详细介绍了正则表达式在Perl、Java、.NET、PHP中的用法。《精通正则表达式(第3版)》自第1版开始着力于教会读者“以正则表达式来思考”,来让读者真正“精通”正则表达式。该版对PHP的相关内容、Javal.5和Javal.6的新特性作了可观的扩充讲解。任何有机会仲用正则表达式的读者都会从中获益匪浅。

目录  · · · · · ·

前言I

第1章:正则表达式入门1

解决实际问题2

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

以文件名做类比4

以语言做类比5

正则表达式的思维框架6

对于有部分经验的读者6

检索文本文件:Egrep6

Egrep元字符8

行的起始和结束8

字符组9

用点号匹配任意字符11

多选结构13

忽略大小写14

单词分界符15

小结16

可选项元素17

其他量词:重复出现18

括号及反向引用20

神奇的转义22

基础知识拓展23

语言的差异23

正则表达式的目标23

更多的例子23

正则表达式术语汇总27

改进现状30

总结32

一家之言33

第2章:入门示例拓展35

关于这些例子36

Perl简单入门37

使用正则表达式匹配文本38

向更实用的程序前进40

成功匹配的副作用40

错综复杂的正则表达式43

暂停片刻49

使用正则表达式修改文本50

例子:公函生成程序50

举例:修整股票价格51

自动的编辑操作53

处理邮件的小工具53

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

Text-to-HTML转换67

回到单词重复问题77

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

在正则的世界中漫步85

正则表达式的起源85

最初印象91

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

集成式处理94

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

查找和替换98

其他语言中的查找和替换100

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

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

作为正则表达式的字符串101

字符编码105

Unicode106

正则模式和匹配模式110

常用的元字符和特性113

字符表示法115

字符组及相关结构118

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

注释和模式修饰符135

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

高级话题引导142

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

发动引擎143

两类引擎144

新的标准144

正则引擎的分类145

几句题外话146

测试引擎的类型146

匹配的基础147

关于范例147

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

引擎的构造149

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

表达式主导与文本主导153

NFA引擎:表达式主导153

DFA引擎:文本主导155

第一想法:比较NFA与DFA156

回溯157

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

回溯的两个要点159

备用状态159

回溯与匹配优先162

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

匹配优先的问题164

多字符“引文”165

使用忽略优先量词166

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

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

占有优先量词和固化分组169

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

环视中的回溯173

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

发掘有序多选结构的价值175

NFA、DFA和POSIX177

最左最长规则177

POSIX和最左最长规则178

速度和效率179

小结:NFA与DFA的比较180

总结183

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

正则表达式的平衡法则186

若干简单的例子186

匹配连续行(续前)186

匹配IP地址187

处理文件名190

匹配对称的括号193

防备不期望的匹配194

匹配分隔符之内的文本196

了解数据,做出假设198

去除文本首尾的空白字符199

HTML相关范例200

匹配HTML Tag200

匹配HTML Link201

检查HTTP URL203

验证主机名203

在真实世界中提取URL206

扩展的例子208

保持数据的协调性209

解析CSV文件213

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

典型示例222

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

效率vs准确性223

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

实测226

全面考察回溯228

POSIX NFA需要更多处理229

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

看清楚一点231

多选结构的代价很高231

性能测试232

理解测量对象234

PHP测试234

Java测试235

VB.NET测试237

Ruby测试238

Python测试238

Tcl测试239

常见优化措施240

有得必有失240

优化各有不同241

正则表达式的应用原理241

应用之前的优化措施242

通过传动装置进行优化246

优化正则表达式本身247

提高表达式速度的诀窍252

常识性优化254

将文字文本独立出来255

将锚点独立出来256

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

拆分正则表达式257

模拟开头字符识别258

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

主导引擎的匹配260

消除循环261

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

真正的“消除循环”解法264

方法2:自顶向下的视角266

方法3:匹配主机名267

观察268

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

简单的消除循环的例子270

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

流畅运转的表达式277

引导匹配的工具277

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

完工281

总结:开动你的大脑281

第7章:Perl283

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

Perl的长处286

Perl的短处286

Perl的正则流派286

正则运算符和正则文字288

正则文字的解析方式292

正则修饰符292

正则表达式相关的Perl教义293

表达式应用场合294

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

匹配修改的特殊变量299

qr/…/运算符与regex对象303

构建和使用regex对象303

探究regex对象305

用regex对象提高效率306

Match运算符306

Match的正则运算元307

指定目标运算元308

Match运算符的不同用途309

迭代匹配:Scalar Context,使用/g312

Match运算符与环境的关系316

Substitution运算符318

运算元replacement319

/e修饰符319

应用场合与返回值321

Split运算符321

Split基础知识322

返回空元素324

Split中的特殊Regex运算元325

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

巧用Perl的专有特性326

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

使用内嵌代码结构331

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

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

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

正则文字重载341

正则文字重载的问题344

模拟命名捕获344

效率347

办法不只一种348

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

理解“原文”副本355

Study函数359

性能测试360

正则表达式调试信息361

结语363

第8章:Java365

Java的正则流派366

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

Unicode行终结符370

使用java.util.regex371

The Pattern.compile() Factory372

Pattern的matcher方法373

Matcher对象373

应用正则表达式375

查询匹配结果376

简单查找-替换378

高级查找-替换380

原地查找-替换382

Matcher的检索范围384

方法链389

构建扫描程序389

Matcher的其他方法392

Pattern的其他方法394

Pattern的split方法,单个参数395

Pattern的split方法,两个参数396

拓展示例397

为Image Tag添加宽度和高度属性397

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

解析CSV文档401

Java版本差异401

1.4.2和1.5.0之间的差异402

1.5.0和1.6之间的差异403

第9章:.NET405

.NET的正则流派406

对于流派的补充409

使用.NET正则表达式413

正则表达式快速入门413

包概览415

核心对象概览416

核心对象详解418

创建Regex对象419

使用Regex对象421

使用Match对象427

使用Group对象430

静态“便捷”函数431

正则表达式缓存432

支持函数432

.NET高级话题434

正则表达式装配件434

匹配嵌套结构436

Capture对象437

第10章:PHP439

PHP的正则流派441

Preg函数接口443

“Pattern”参数444

Preg函数罗列449

preg_match449

preg_match_all453

preg_replace458

preg_replace_callback463

preg_split465

preg_grep469

preg_quote470

“缺失”的preg函数471

preg_regex_to_pattern472

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

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

递归的正则表达式475

匹配嵌套括号内的文本475

不能回溯到递归调用之内477

匹配一组嵌套的括号478

效率478

模式修饰符S:“研究”478

扩展示例480

用PHP解析CSV480

检查tagged data的嵌套正确性481

索引485

· · · · · ·

下载地址  · · · · · ·

文件下载
资源名称:精通正则表达式


目录导航
  • 基本信息 · · · · · ·
  • 内容简介 · · · · · ·
  • 目录 · · · · · ·
  • 下载地址 · · · · · ·
  • 请发表您的评论

    Top