第1章 正则表达式入门 1
1.1 正则表达式的用途 1
1.2 如何使用正则表达式 2
1.2.1 用正则表达式进行搜索 3
1.2.2 用正则表达式进行替换 3
1.3 什么是正则表达式 4
1.4 使用正则表达式 5
1.5 在继续学习之前 6
1.6 小结 6
第2章 匹配单个字符 7
2.1 匹配纯文本 7
2.1.1 有多个匹配结果 8
2.1.2 字母的大小写问题 8
2.2 匹配任意字符 9
2.3 匹配特殊字符 12
2.4 小结 14
第3章 匹配一组字符 15
3.1 匹配多个字符中的某一个 15
3.2 利用字符集合区间 17
3.3 取非匹配 21
3.4 小结 22
第4章 使用元字符 23
4.1 对特殊字符进行转义 23
4.2 匹配空白字符 26
4.3 匹配特定的字符类别 28
4.3.1 匹配数字(与非数字) 28
4.3.2 匹配字母和数字(与非字母和数字) 29
4.3.3 匹配空白字符(与非空白字符) 31
4.3.4 匹配十六进制或八进制数值 31
4.4 使用POSIX字符类 32
4.5 小结 34
第5章 重复匹配 35
5.1 有多少个匹配 35
5.1.1 匹配一个或多个字符 36
5.1.2 匹配零个或多个字符 39
5.1.3 匹配零个或一个字符 41
5.2 匹配的重复次数 43
5.2.1 为重复匹配次数设定一个精确的值 44
5.2.2 为重复匹配次数设定一个区间 45
5.2.3 匹配“至少重复多少次” 46
5.3 防止过度匹配 47
5.4 小结 49
第6章 位置匹配 50
6.1 边界 50
6.2 单词边界 51
6.3 字符串边界 54
6.4 小结 59
第7章 使用子表达式 60
7.1 什么是子表达式 60
7.2 子表达式 61
7.3 子表达式的嵌套 65
7.4 小结 67
第8章 回溯引用:前后一致匹配 68
8.1 回溯引用有什么用 68
8.2 回溯引用匹配 71
8.3 回溯引用在替换操作中的应用 74
8.4 小结 79
第9章 前后查找 80
9.1 前后查找 80
9.2 向前查找 81
9.3 向后查找 83
9.4 把向前查找和向后查找结合起来 86
9.5 对前后查找取非 87
9.6 小结 89
第10章 嵌入条件 90
10.1 为什么要嵌入条件 90
10.2 正则表达式里的条件 91
10.2.1 回溯引用条件 91
10.2.2 前后查找条件 94
10.3 小结 96
附录A 常见应用软件和编程语言中的正则表达式 97
A.1 grep 97
A.2 JavaScript 98
A.3 Macromedia ColdFusion 99
A.4 Macromedia Dreamweaver 100
A.5 Macromedia HomeSite(和ColdFusion Studio) 101
A.6 Microsoft ASP 101
A.7 Microsoft ASP.NET 102
A.8 Microsoft C 102
A.9 Microsoft.NET 102
A.10 Microsoft Visual Studio.NET 103
A.11 MySQL 105
A.12 Perl 106
A.13 PHP 106
A.14 Sun Java 107
附录B 常见问题的正则表达式解决方案 110
B.1 北美电话号码 111
B.2 美国邮政编码 112
B.3 加拿大邮政编码 113
B.4 英国邮政编码 114
B.5 美国社会安全号码 115
B.6 IP地址 116
B.7 URL地址 117
B.8 完整的URL地址 118
B.9 电子邮件地址 119
B.10 HTML注释 120
B.11 JavaScript注释 121
B.12 信用卡号码 122
B.13 小结 127
附录C 则表达式测试器 128
C.1 Regular Expression Tester软件 128
C.1.1 进行查找操作 129
C.1.2 进行替换操作 129
C.2 获得这套应用程序的一份副本 130
索引 131