《正则表达式入门经典》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:(美)瓦特,李松峰,李丽译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2008
  • ISBN:9787302183822
  • 页数:642 页
图书介绍:本书详细解释了正则表达式的各个组成部分、这些组成部分的含义、如何使用它们,以及在编写正则表达式时如何避免常见的错误。

第1章 正则表达式概述 1

1.1 什么是正则表达式 2

1.2 可以使用正则表达式做什么 4

1.2.1 查找重复的单词 4

1.2.2 检查Web表单的输入 5

1.2.3 转换日期格式 5

1.2.4 发现错误的拼写 5

1.2.5 为URL添加链接 6

1.3 使用过的正则表达式 6

1.3.1 在文字处理软件中查找和替换 6

1.3.2 目录列表 7

1.3.3 在线搜索 7

1.4 为什么正则表达式看起来令人生畏 7

1.4.1 简洁而神秘的语法 8

1.4.2 空格会导致含义改变 8

1.4.3 没有统一的语法标准 11

1.4.4 各种实现之间的差别 11

1.4.5 不同环境下的字符含义不同 11

1.4.6 正则表达式可以区分大小写 13

1.4.7 支持性技术的不断发展 14

1.4.8 一个问题对应多个解决方案 14

1.4.9 使用正则表达式做什么 15

1.5 支持正则表达式的语言 15

1.6 替换大量文本 15

第2章 正则表达式工具和使用方法 18

2.1 正则表达式工具 18

2.1.1 findstr 19

2.1.2 Microsoft Word 20

2.1.3 StarOffice Writer/OpenOffice.org Writer 23

2.1.4 Komodo Rx Package 23

2.1.5 PowerGrep 24

2.1.6 Microsoft Excel 24

2.2 基于语言和平台的工具 25

2.2.1 JavaScript和JScript 25

2.2.2 VBScript 25

2.2.3 Visual Basic.NET 25

2.2.4 C# 25

2.2.5 PHP 25

2.2.6 Java 26

2.2.7 Perl 26

2.2.8 MySQL 26

2.2.9 SQL Server2000 26

2.2.10 W3C XMLS chema 26

2.3 使用正则表达式的分析方法 27

2.3.1 用自然语言来表达和说明你的意图 27

2.3.2 数据源及其可能的内容 28

2.3.3 可用的正则表达式选项 29

2.3.4 灵敏度和特殊性 29

2.3.5 创建适当的正则表达式 30

2.3.6 对除简单正则表达式之外的正则表达式给予说明 30

2.3.7 测试正则表达式的结果 32

第3章 简单的正则表达式 34

3.1 匹配单个字符 34

3.1.1 匹配连续的字符序列 38

3.1.2 元字符简介 40

3.1.3 匹配不同的字符序列 45

3.2 匹配可选字符 46

3.3 其他限量操作符 52

3.3.1 *限定符 52

3.3.2 +限定符 54

3.4 大括号语法 56

3.4.1 {n}语法 56

3.4.2 {n,m}语法 56

3.4.3 {O,m} 56

3.4.4 {n,m} 58

3.4.5 {n,} 59

3.5 练习 60

第4章 元字符和修饰符 61

4.1 正则表达式的元字符 61

4.1.1 考虑字符和位置 62

4.1.2 句点(.)元字符 63

4.1.3 \w元字符 68

4.1.4 \W元字符 69

4.1.5 数字和非数字 70

4.2 空白和非空白元字符 78

4.2.1 \s元字符 78

4.2.2 处理可选的空白符 80

4.2.3 \S元字符 82

4.2.4 \t元字符 82

4.2.5 \n元字符 84

4.2.6 转义字符 86

4.2.7 查找反斜杠 86

4.3 修饰符 87

4.3.1 全局搜索 87

4.3.2 不区分大小写的搜索 87

4.4 练习 88

第5章 字符类 89

5.1 字符类概述 89

5.1.1 在两个字符中选择 91

5.1.2 对字符类应用限定符 94

5.2 在字符类中使用范围 97

5.2.1 字母字符范围 98

5.2.2 反转字符类的范围 109

5.2.3 潜在的范围陷阱 110

5.2.4 查找HTML中的标题元素 113

5.3 字符类中元字符的含义 114

5.3.1 ^元字符 114

5.3.2 如何使用-元字符 116

5.4 对字符类取反 116

5.5 POSIX字符类 119

5.6 练习 121

第6章 字符串、行和词边界 122

6.1 字符串、行和词边界 122

6.1.1 ^元字符 123

6.1.2 ^元字符和多行模式 125

6.1.3 $元字符 127

6.2 什么是词 139

6.3 识别词边界 140

6.3.1 \<语法 140

6.3.2 \>语法 141

6.3.3 \b语法 143

6.3.4 不常见的词边界元字符 144

6.4 练习 144

第7章 正则表达式中的圆括号 145

7.1 使用圆括号分组 145

7.1.1 圆括号和限定符 147

7.1.2 匹配圆括号直接量 148

7.1.3 美国电话号码的例子 148

7.2 交替选择 150

7.2.1 在多个选项中做出选择 152

7.2.2 错误匹配的交替行为 155

7.3 捕获圆括号 157

7.3.1 捕获组的编号 157

7.3.2 使用嵌套的圆括号时的编号 158

7.3.3 命名的组 159

7.4 非捕获的圆括号 160

7.5 反向引用 161

7.6 练习 164

第8章 向前查找和向后查找 165

8.1 为什么需要向前查找和向后查找 165

8.2 向前查找 166

8.2.1 肯定式向前查找 168

8.2.2 否定式向前查找 171

8.3 肯定式向前查找的例子 172

8.3.1 在同一文档中使用肯定式向前查找 172

8.3.2 插入单引号 173

8.4 向后查找 177

8.4.1 肯定式向后查找 177

8.4.2 否定式向后查找 181

8.5 如何匹配位置 182

8.6 练习 186

第9章 正则表达式的灵敏度和特殊性 187

9.1 什么是灵敏度和特殊性 187

9.1.1 极端的灵敏度和糟糕的特殊性 188

9.1.2 电子邮件地址的例子 189

9.1.3 替换连字符的例子 193

9.2 灵敏度和特殊性的平衡 195

9.3 元字符如何影响灵敏度和特殊性 195

9.3.1 灵敏度、特殊性和位置字符 196

9.3.2 灵敏度、特殊性和模式 196

9.3.3 灵敏度、特殊性和向前、向后查找 197

9.3.4 正则表达式应该做多少 197

9.4 了解数据、灵敏度和特殊性 198

9.4.1 缩写词 198

9.4.2 来自其他语言的字符 199

9.4.3 名字 199

9.4.4 灵敏度及如何最大化 200

9.4.5 特殊性及如何最大化 200

9.5 重新分析Star Training Company的例子 200

9.6 练习 204

第10章 说明和调试正则表达式 205

10.1 说明正则表达式 205

10.1.1 说明问题定义 206

10.1.2 为代码添加注释 206

10.1.3 利用扩展模式 207

10.2 了解你的数据 209

10.2.1 缩写词 209

10.2.2 固有名字 209

10.2.3 错误的拼写 210

10.3 创建测试用例 210

10.4 调试正则表达式 211

10.4.1 叛逆的空白符 211

10.4.2 反斜杠导致的问题 213

10.4.3 考虑其他原因 213

第11章 在Microsoft Word中使用正则表达式 215

11.1 用户界面 215

11.2 可用的元字符 217

11.2.1 限定符 218

11.2.2 模式 223

11.2.3 字符类 226

11.2.4 反向引用 226

11.2.5 向前查找和向后查找 226

11.2.6 贪婪匹配与懒惰匹配 226

11.3 例子 228

11.3.1 字符类的例子(包括范围) 228

11.3.2 全字匹配 229

11.4 搜索和替换的例子 230

11.4.1 使用反向引用改变名字的结构 230

11.4.2 操纵日期 233

11.4.3 Star Training Company的例子 235

11.5 VBA中的正则表达式 238

11.6 练习 240

第12章 在StarOffice/OpenOffice.org Writer中使用正则表达式 241

12.1 用户界面 241

12.2 可用的元字符 243

12.2.1 限定符 244

12.2.2 模式 245

12.2.3 字符类 245

12.2.4 交替选择 248

12.2.5 反向引用 251

12.2.6 向前查找和向后查找 252

12.3 搜索的例子 253

12.4 搜索和替换的例子 255

12.5 POSIX字符类 258

12.6 练习 261

第13章 通过findstr使用正则表达式 262

13.1 findstr简介 262

13.2 findstr支持的元字符 264

13.2.1 限定符 266

13.2.2 字符类 267

13.3 词边界位置 269

13.4 行开始位置和结束位置 271

13.4.1 命令行开关的例子 272

13.4.2 /v开关 272

13.4.3 /a开关 274

13.5 单个文件的例子 275

13.5.1 简单字符类的例子 276

13.5.2 查找协议的例子 276

13.6 多个文件的例子 277

13.7 文件列表的例子 278

13.8 练习 279

第14章 PowerGREP 280

14.1 PowerGREP的界面 280

14.1.1 简单查找的例子 281

14.1.2 Replace选项卡 283

14.1.3 File Finder选项卡 284

14.1.4 语法着色 285

14.1.5 其他选项卡 285

14.2 PowerGREP支持的元字符 285

14.2.1 数字和字母字符 286

14.2.2 限定符 287

14.2.3 反向引用 289

14.2.4 交替选择 292

14.2.5 行位置元字符 292

14.2.6 词边界元字符 293

14.2.7 向前查找和向后查找 295

14.3 复杂一点的例子 296

14.3.1 查找HTML中的水平线(<hr>)元素 296

14.3.2 匹配时间的例子 298

14.4 练习 302

第15章 Microsoft Excel中的通配符 303

15.1 Excel的查找界面 303

15.2 Excel支持的通配符 306

15.3 在记录单中使用通配符 310

15.4 在筛选中使用通配符 312

15.5 练习 314

第16章 SQL Server 2000中的正则表达式功能 315

16.1 支持的元字符 315

16.2 在LIKE中使用正则表达式 316

16.2.1 %元字符 316

16.2.2 元字符 321

16.2.3 字符类 322

16.3 对字符类取反 324

16.4 使用全文搜索 327

16.5 图像字段中的筛选器 337

16.6 练习 337

第17章 在MySQL中使用正则表达式 338

17.1 MySQL简介 338

17.2 MySQL支持的元字符 341

17.2.1 使用_和%元字符 342

17.2.2 直接量测试匹配:_和%元字符 344

17.3 使用REGEXP关键字和元字符 345

17.3.1 使用位置元字符 348

17.3.2 使用字符类 350

17.3.3 限定符 352

17.4 社会保险号的例子 354

17.5 练习 355

第18章 正则表达式与Microsoft Access 356

18.1 Microsoft Access中元字符的用法 356

18.1.1 创建一个硬编码的查询. 357

18.1.2 创建一个参数查询 361

18.2 Access支持的元字符 363

18.2.1 使用?元字符 363

18.2.2 使用*元字符 364

18.3 使用#元字符 365

18.4 使用#字符匹配日期/时间数据 366

18.5 在Access中使用字符类 367

18.6 练习 369

第19章 JScript和JavaScript中的正则表达式 370

19.1 在JavaScript和JScript中使用正则表达式 371

19.1.1 RegExp对象 373

19.1.2 String对象 387

19.2 JavaScript和JScript中的元字符 390

19.3 说明JavaScript正则表达式 391

19.4 验证SSN的例子 391

19.5 练习 393

第20章 正则表达式与VBScript 394

20.1 RegExp对象及其用法 394

20.1.1 RegExp对象的Pattern属性 395

20.1.2 RegExp对象的Global属性 397

20.1.3 RegExp对象的IgnoreCase属性 400

20.1.4 RegExp对象的Test()方法 403

20.1.5 RegExp对象的Replace()方法 403

20.1.6 RegExp对象的Execute()方法 405

20.2 使用Match对象和Matches集合 409

20.3 VBScript支持的元字符 411

20.3.1 限定符 412

20.3.2 位置元字符 412

20.3.3 字符类 416

20.3.4 词边界 416

20.3.5 向前查找 416

20.3.6 分组和非分组(捕获)的圆括号 419

20.4 练习 420

第21章 Visual Basic.NET与正则表达式 421

21.1 System.Text.RegularExpressions命名空间 421

21.1.1 一个简单的VisualBasic.NET的例子 421

21.1.2 System.Text.RegularExpressions中的类 425

21.1.3 Regex对象 426

21.1.4 GroupCollection和Group类 432

21.1.5 CaptureCollection和Capture类 434

21.1.6 RegexOptions枚举 436

21.1.7 使用IgnorePattem Whitespace选项添加嵌入式说明 439

21.2 Visual Basic.NET支持的元字符 442

21.3 练习 445

第22章 C#和正则表达式 446

22.1 System.Text.RegularExpressions命名空间中的类 446

22.1.1 介绍性的例子 446

22.1.2 System.Text.Regular Expressions的类 451

23.1.3 Regex类 451

22.1.4 使用Regex类的静态方法 464

22.1.5 Match和Matches类 465

22.1.6 GroupCollection类和Group类 468

22.1.7 RegexOptions类 470

22.1.8 IgnorePattern Whitespace选项 471

22.2 VisualC#.NET支持的元字符 473

22.2.1 使用命名的组 475

22.2.2 使用反向引用 477

22.3 练习 478

第23章 PHP和正则表达式 479

23.1 PHP5.0入门 479

23.2 PHP组件如何支持正则表达式 483

23.2.1 ereg()函数集 483

23.2.2 eregi()函数 488

23.2.3 Perl兼容正则表达式 496

23.3 PHP支持的元字符 509

23.3.1 ereg()函数族支持的元字符 509

23.3.2 在PHP中使用POSIX字符类 510

23.3.3 PCRE支持的元字符 512

23.3.4 位置元字符 513

23.3.5 PHP中的字符类 513

23.3.6 为PHP中的正则表达式添加说明 515

23.4 练习 517

第24章 W3C XML Schema中的正则表达式 518

24.1 W3C XML Schema基础 518

24.1.1 使用W3C XML Schema的工具 519

24.1.2 XML Schema和DTD的比较 519

24.1.3 W3C XML Schema如何表示约束 524

24.1.4 W3C XML Schema中的数据类型 524

24.1.5 通过限制派生 527

24.1.6 Unicode与W3C XML Schema 529

24.1.7 Unicode概述 529

24.1.8 使用Unicode字符类 530

24.1.9 Unicode字符块 534

24.1.10 W3C XML Schema支持的元字符 537

24.1.11 位置元字符 538

24.1.12 匹配数字 539

24.1.13 交替选择 539

24.1.14 使用\w和\s元字符 540

24.1.15 转义元字符 540

24.2 练习 541

第25章 Java中的正则表达式 543

25.1 java.util.regex包简介 543

25.1.1 获取并安装Java 544

25.1.2 Pattern类 544

25.1.3 使用静态方法matches() 544

25.1.4 两个简单的Java例子 545

25.1.5 Pattern类的方法 555

25.1.6 Matcher类 557

25.1.7 PattemSyntax Exception类 566

25.2 java.util.regex包中支持的元字符 567

25.2.1 使用\d元字符 567

25.2.2 字符类 569

25.2.3 java.util.regex包中的POSIX字符类 573

25.2.4 Unicode字符类和字符块 574

25.2.5 使用转义字符 574

25.3 使用String类的方法 575

25.3.1 使用matches()方法 575

25.3.2 使用replaceFirst()方法 577

25.3.3 使用replaceAll()方法 578

25.3.4 使用split()方法 578

25.4 练习 579

第26章 Perl中的正则表达式 580

26.1 下载并安装Perl 580

26.2 使用Perl正则表达式的基本条件 586

26.3 使用Perl正则表达式操作符 587

26.3.1 使用m//操作符 587

26.3.2 使用其他正则表达式定界符 594

26.3.3 使用置入变量匹配 595

26.3.4 使用s///操作符 597

26.3.5 使用带全局修饰符的s 598

26.3.6 使用s///与默认变量 600

26.3.7 使用split操作符 601

26.4 Perl支持的元字符 602

26.4.1 在Perl中使用限定符 603

26.4.2 使用位置元字符 604

26.4.3 Perl中的捕获组 605

26.4.4 在Perl中使用反向引用 607

26.4.5 使用交替选择 608

26.4.6 在Perl中使用字符类 609

26.4.7 使用向前查找 613

26.4.8 使用向后查找 615

26.5 在Perl中使用正则表达式匹配模式 616

26.6 一个简单的PerlRegex测试程序 619

26.7 练习 622

附录 练习答案 623