《正则指引》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:余晟著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2012
  • ISBN:9787121165511
  • 页数:315 页
图书介绍:目前国内IT领域用到搜索的场景有很多,这样也就自然而然涉及了正则表达式的应用。作者将开发中遇到的实例,以及其他人咨询的问题,总结出一套正则表达式解题的办法,并通过一些具体的例子,讲解使用,能指导读者拆解、分析问题,另外也有关于效率的经验总结。本书分为三大部分,共17章,2个附录。其中不但阐述了正则表达式的基数应用,还涉及正则表达式的匹配原理、逻辑问题、常见操作和效率问题。

第一部分 2

第1章 字符组 2

1.1普通字符组 2

1.2关于Python的基础知识 4

1.3普通字符组(续) 6

1.4元字符与转义 8

1.5排除型字符组 10

1.6字符组简记法 12

1.7字符组运算 14

1.8 POSIX字符组 15

第2章 量词 17

2.1一般形式 17

2.2常用量词 18

2.3数据提取 21

2.4点号 23

2.5滥用点号的问题 23

2.6忽略优先量词 26

2.7转义 31

第3章 括号 33

3.1分组 33

3.2多选结构 39

3.3引用分组 44

3.3.1反向引用 48

3.3.2各种引用的记法 50

3.3.3命名分组 53

3.4非捕获分组 54

3.5补充 55

3.5.1转义 55

3.5.2 URL Rewrite 56

3.5.3一个例子 58

第4章 断言 59

4.1单词边界 59

4.2行起始/结束位置 61

4.3环视 68

4.4补充 74

4.4.1环视的价值 74

4.4.2环视与分组编号 74

4.4.3环视的支持程度 75

4.4.4环视的组合 77

4.4.5断言和反向引用之间的关系 79

第5章 匹配模式 81

5.1不区分大小写模式 81

5.1.1模式的指定方式 82

5.2单行模式 84

5.3多行模式 85

5.4注释模式 87

5.5补充 88

5.5.1更多的模式 88

5.5.2修饰符的作用范围 89

5.5.3失效修饰符 90

5.5.4模式与反向引用 90

5.5.5冲突策略 91

5.5.6哪种方式更好 92

第6章 其他 93

6.1转义 93

6.1.1字符串转义与正则转义 93

6.1.2元字符的转义 97

6.1.3彻底消除元字符的特殊含义 99

6.1.4字符组中的转义 101

6.2正则表达式的处理形式 101

6.2.1函数式处理 102

6.2.2面向对象式处理 102

6.2.3比较 103

6.2.4线程安全性 104

6.3表达式中的优先级 106

第二部分 110

第7章 Unicode 110

7.1关于编码 110

7.2推荐使用Unicode编码 111

7.3 Unicode匹配规则 115

7.4单词边界 117

7.5码值 119

7.6 Unicode属性 121

7.6.1 Unicode Property 121

7.6.2 Unicode Block 122

7.6.3 Unicode Script 123

7.7 Unicode属性列表 123

7.7.1 Unicode Property 123

7.7.2 Unicode Block 125

7.7.3 Unicode Script 128

7.8 POSIX字符组 129

第8章 匹配原理 130

8.1有穷自动机 130

8.2正则表达式的匹配过程 131

8.3回溯 134

8.4 NFA和DFA 136

第9章 常见问题的解决思路 138

9.1关于元素的三种逻辑 138

9.1.1必须出现 139

9.1.2可能出现 139

9.1.3不能出现 140

9.2正则表达式的常见操作 142

9.2.1提取 142

9.2.2验证 148

9.2.3替换 152

9.2.4切分 157

9.3正则表达式的优化建议 159

9.3.1使用缓存 159

9.3.2尽量准确地表达意图 160

9.3.3避免重复匹配 160

9.3.4独立出文本和锚点 161

9.4别过分依赖正则表达式 162

9.4.1彻底放弃字符串操作 162

9.4.2思维定势 163

9.4.3正则表达式可以匹配各种文本 164

第三部分 168

第10章 .NET 168

10.1预备知识 168

10.2正则功能详解 169

10.2.1列表 169

10.2.2字符组 170

10.2.3 Unicode属性 170

10.2.4字符组简记法 171

10.2.5单词边界 171

10.2.6行起始/结束位置 172

10.2.7环视 173

10.2.8匹配模式 173

10.2.9捕获分组的引用 174

10.3正则API简介 175

10.3.1 Regex 175

10.3.2 Match 179

10.4常用操作示例 180

10.4.1验证 180

10.4.2提取 180

10.4.3替换 181

10.4.4切分 182

第11章 Java 183

11.1预备知识 183

11.2正则功能详解 184

11.2.1列表 184

11.2.2字符组 184

11.2.3 Unicode属性 186

11.2.4字符组简记法 186

11.2.5单词边界 186

11.2.6行起始/结束位置 187

11.2.7环视 188

11.2.8匹配模式 188

11.2.9纯文本模式 189

11.2.10捕获分组的引用 189

11.3正则API简介 189

11.3.1 Pattern 190

11.3.2 Matcher 192

11.3.3 String 194

11.4常用操作示例 195

11.4.1验证 195

11.4.2提取 196

11.4.3替换 196

11.4.4切分 197

第12章 JavaScript 198

12.1预备知识 198

12.2正则功能详解 199

12.2.1列表 199

12.2.2字符组 199

12.2.3字符组简记法 200

12.2.4单词边界 200

12.2.5行起始/结束位置 201

12.2.6环视 201

12.2.7匹配模式 202

12.2.8捕获分组的引用 203

12.3正则API简介 203

12.3.1 RegExp 203

12.3.2 String 207

12.4常用操作示例 210

12.4.1验证 210

12.4.2提取 210

12.4.3替换 211

12.4.4切分 211

12.5关于ActionScript 211

12.5.1 RegExp 211

12.5.2匹配规则 212

12.5.3匹配模式 212

12.5.4正则API 212

第13章 PHP 213

13.1预备知识 213

13.2正则功能详解 215

13.2.1列表 215

13.2.2字符组 216

13.2.3 Unicode属性 217

13.2.4字符组简记法 217

13.2.5单词边界 217

13.2.6行起始/结束位置 218

13.2.7环视 219

13.2.8匹配模式 219

13.2.9纯文本模式 220

13.2.10捕获分组的引用 220

13.3正则API简介 221

13.3.1 PREG常量说明 221

13.3.2 preg_quote 222

13.3.3 preg_ grep 223

13.3.4 preg_ match 223

13.3.5 preg_ match all 225

13.3.6 preg_ last_error 227

13.3.7 preg replace 227

13.3.8 preg_ replace_ callback 227

13.3.9 preg_ fiilter 228

13.3.10 preg_ split 229

13.4常见的正则操作举例 230

13.4.1验证 230

13.4.2提取 230

13.4.3替换 231

13.4.4切分 232

第14章 Python 233

14.1预备知识 233

14.2正则功能详解 234

14.2.1列表 234

14.2.2字符组 235

14.2.3 Unicode属性 236

14.2.4字符组简记法 236

14.2.5单词边界 238

14.2.6行起始/结束位置 239

14.2.7环视 239

14.2.8匹配模式 240

14.2.9捕获分组的引用 240

14.3正则API简介 241

14.3.1 RegexObject 241

14.3.2 re.compile(regex[,flags]) 243

14.3.3 re.search(pattern, string[,flags]) 243

14.3.4 MatchObject 243

14.3.5 re.match(pattern, string[,flags]) 244

14.3.6 re.fiindall(pattern, sting[, flags]) 245

14.3.7 re.fiinditer(pattern, string[, flags]) 245

14.3.8 re.split(pattern, string[, maxsplit=0, flags=0]) 246

14.3.9 re.sub(pattern, repl, string[, count, flags]) 247

14.4常用操作示例 248

14.4.1验证 248

14.4.2提取 248

14.4.3替换 249

14.4.4切分 250

第15章 Ruby 251

15.1预备知识 251

15.2正则功能详解 252

15.2.1列表 252

15.2.2字符组 252

15.2.3 Unicode属性 253

15.2.4字符组简记法 254

15.2.5单词边界 254

15.2.6行起始/结束位置 255

15.2.7环视 256

15.2.8匹配模式 256

15.2.9捕获分组的引用 257

15.3正则API简介 257

15.3.1 Regexp 257

15.3.2 Regexp.matcb(text) 259

15.3.3 Regexp.quote(text)和Regexp.escape(text) 260

15.3.4 String.index(Regexp) 261

15.3.5 String.scan(Regexp) 261

15.3.6 String.slice(Regexp) 262

15.3.7 String.split(Regexp) 262

15.3.8 String.sub(Regexp, Str) 263

15.3.9 String.gsub(Regexp, String) 264

15.4常用操作示例 264

15.4.1验证 264

15.4.2提取 265

15.4.3替换 265

15.4.4切分 265

15.5 Ruby 1.9的新变化 266

第16章 Linux/UNIX 268

16.1 POSIX 268

16.1.1 POSIX规范 268

16.1.2 POSIX字符组 269

16.2 vi 271

16.2.1字符组及简记法 271

16.2.2量词 272

16.2.3多选结构和捕获分组 272

16.2.4环视 273

16.2.5锚点和单词边界 273

16.2.6替换操作的特殊字符 274

16.2.7 replacement中的特殊变量 276

16.2.8补充 276

16.3 grep 277

16.3.1基本用法 277

16.3.2字符组 277

16.3.3锚点和单词边界 278

16.3.4量词 278

16.3.5多选结构和捕获分组 279

16.3.6 options 279

16.3.7 egrep和fgrep 280

16.3.8补充 280

16.4 awk 281

16.4.1基本用法 281

16.4.2字符组及简记法 282

16.4.3锚点和单词边界 283

16.4.4量词 283

16.4.5多选结构 284

16.4.6补充 284

16.5 sed 284

16.5.1基本用法 284

16.5.2字符组及简记法 285

16.5.3锚点和单词边界 285

16.5.4量词 286

16.5.5多选结构和捕获分组 286

16.5.6 options 286

16.5.7补充 287

16.6总结 288

附录A常用语言中正则特性一览 291

附录B常用的正则表达式 293

附录C常用的正则表达式工具及资源 309