- 浏览: 582701 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
小网客:
噱头 没实际意义
【互动出版网】11.11购物狂欢节重磅大促,免费领万千优惠券 -
tongchuang123:
这是要出书了吗:o
微信控 控微信 -
韶华无限:
这也可以出本书……
玩转微信(彩印) -
zhukewen_java:
无语了。。。哪天出本《玩转QQ》?
玩转微信(彩印) -
yaying:
我只见过MySQL Cookbook中文版
jQuery Cookbook中文版
正则指引
编辑推荐
一部答疑释惑的正则表达式指引之书
常用文本处理以及语言开发的技术开发人员必读!
基本信息
- 作者: 余晟
- 出版社:电子工业出版社
- ISBN:9787121165511
- 上架时间:2012-4-16
- 出版日期:2012 年5月
- 页码:336
- 定价 :¥58.00
- 普通会员 : ¥43.50(75折)
- 1-3星会员: ¥42.34(73折)
- 4-5星会员: ¥40.60(70折)
- 校园优惠价 :¥42.34(73折)
http://product.china-pub.com/199266&iteyeblog
内容简介
书籍
计算机书籍
《正则指引》针对作者在开发中遇到的实际问题,以及其他开发人员咨询的问题,总结出一套使用正则表达式解题的办法,并通过具体的例子指导读者拆解、分析问题。全书分为三大部分:第一部分主要讲解正则表达式的基础知识,涵盖了常见正则表达式中的各种功能和结构;第二部分主要讲解关于正则表达式的更深入的知识,详细探讨了编码问题、匹配原理、解题思路;第三部分将之前介绍的各种知识落实到6种常用语言.net、java、javascript、php、python、ruby中,不但详细介绍了语言中正则表达式的用法,更点明了版本之间的细微差异,既可以作为专门学习的教材,也可以作为有用的参考手册。
《正则指引》适合经常需要进行文本处理(比如日志分析或网络运维)的技术人员、熟悉常用开发语言的程序员,以及已经对正则表达式有一定了解的读者阅读。
计算机书籍
《正则指引》针对作者在开发中遇到的实际问题,以及其他开发人员咨询的问题,总结出一套使用正则表达式解题的办法,并通过具体的例子指导读者拆解、分析问题。全书分为三大部分:第一部分主要讲解正则表达式的基础知识,涵盖了常见正则表达式中的各种功能和结构;第二部分主要讲解关于正则表达式的更深入的知识,详细探讨了编码问题、匹配原理、解题思路;第三部分将之前介绍的各种知识落实到6种常用语言.net、java、javascript、php、python、ruby中,不但详细介绍了语言中正则表达式的用法,更点明了版本之间的细微差异,既可以作为专门学习的教材,也可以作为有用的参考手册。
《正则指引》适合经常需要进行文本处理(比如日志分析或网络运维)的技术人员、熟悉常用开发语言的程序员,以及已经对正则表达式有一定了解的读者阅读。
目录
《正则指引》
第一部分
第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
第一部分
第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
第二部分
第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
第 三 部 分
第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_ filter 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.findall(pattern, sting[, flags]) 245
14.3.7 re.finditer(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.match(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
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
第二部分
第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
第 三 部 分
第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_ filter 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.findall(pattern, sting[, flags]) 245
14.3.7 re.finditer(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.match(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
前言
提到正则表达式,许多人很有点不屑一顾:这东西,不登大雅之堂,再说也不是总要用到,何必专门花时间学习?
没错,正则表达式并不“总要用到”,但到了需要的场合用不上,往往产生“一分钱难倒英雄汉”的尴尬。经常需要处理文本的程序员自然会知道正则表达式的价值,其他的程序员如果不会正则表达式,即便开发的领域与文本处理没什么关系,也难免“躺着中枪”的命运——前几天我遇到一个问题,将一行长长的地址拆分成多行,负责这部分的程序员的日常工作只是制作PDF而已,拆分地址是很“边缘”的功能,但不会正则表达式就无法准确折行(一般需要在标点符号出现的地方折行,而不能只在空白字符处折行,但是不同语言中的标点符号各有不同),结果一筹莫展;相反,计算机书籍如果了解正则表达式,就可以很容易地处理各种语言中的标点字符。
以我的开发经验来看,专门花点时间掌握正则表达式,确实是非常有必要的。目前可以见到的关于正则表达式的书籍和资料有不少,但又各有不足。
在互联网上,流传着一些编程语言的正则文档和《30分钟教会你正则表达式》之类的帖子。这类资料的好处是简单直接,查到了,如果有现成的例子,而且适用于自己的语言,则可以直接拿来用;然而,其坏处也是简单直接,因为缺乏背后原理的讲解,如果找不到现成的例子,或者找不到能在自己所使用语言中行得通的例子(需知道,同样的正则表达式并不能直接套用到不同的语言中),则束手无策。
在正式的出版领域,已经有《精通正则表达式》、《正则表达式必知必会》之类的书籍出版,尤其是前者,堪称关于正则表达式的经典著作,如果想认真学习正则表达式,这类书籍是必须阅读的。但这类书籍也有一个弱点,即都是由英文版本翻译而来的,更多地侧重英文文本的处理,身为中文世界的开发人员,我们经常需要处理中文文本——对于处理英文之外的字符,正则表达式已经提供了足够丰富的功能,但如何用对、用好这些功能,资料却很匮乏。
我经常需要给人讲解正则表达式的相关知识,时常惋惜的是,开发人员为这些问题所困扰;正因为如此,本书的写作动机便是着力弥补现有资料的缺陷。
相对于正则文档和速成教学帖子,本书深入讲解了匹配背后的原理,往往会举一反三,告诉读者,这里为何这样写,如果改成其他形式,会造成什么结构;并且,集中讲解和比较了多种语言中正则表达式用法的异同,方便读者把现成的正则表达式“移植”到自己的工作环境中。
样书试读:http://www.china-pub.com/computers/common/mianfeisd.asp?id=199266&iteye
本书来源:互动出版网 http://www.china-pub.com/
没错,正则表达式并不“总要用到”,但到了需要的场合用不上,往往产生“一分钱难倒英雄汉”的尴尬。经常需要处理文本的程序员自然会知道正则表达式的价值,其他的程序员如果不会正则表达式,即便开发的领域与文本处理没什么关系,也难免“躺着中枪”的命运——前几天我遇到一个问题,将一行长长的地址拆分成多行,负责这部分的程序员的日常工作只是制作PDF而已,拆分地址是很“边缘”的功能,但不会正则表达式就无法准确折行(一般需要在标点符号出现的地方折行,而不能只在空白字符处折行,但是不同语言中的标点符号各有不同),结果一筹莫展;相反,计算机书籍如果了解正则表达式,就可以很容易地处理各种语言中的标点字符。
以我的开发经验来看,专门花点时间掌握正则表达式,确实是非常有必要的。目前可以见到的关于正则表达式的书籍和资料有不少,但又各有不足。
在互联网上,流传着一些编程语言的正则文档和《30分钟教会你正则表达式》之类的帖子。这类资料的好处是简单直接,查到了,如果有现成的例子,而且适用于自己的语言,则可以直接拿来用;然而,其坏处也是简单直接,因为缺乏背后原理的讲解,如果找不到现成的例子,或者找不到能在自己所使用语言中行得通的例子(需知道,同样的正则表达式并不能直接套用到不同的语言中),则束手无策。
在正式的出版领域,已经有《精通正则表达式》、《正则表达式必知必会》之类的书籍出版,尤其是前者,堪称关于正则表达式的经典著作,如果想认真学习正则表达式,这类书籍是必须阅读的。但这类书籍也有一个弱点,即都是由英文版本翻译而来的,更多地侧重英文文本的处理,身为中文世界的开发人员,我们经常需要处理中文文本——对于处理英文之外的字符,正则表达式已经提供了足够丰富的功能,但如何用对、用好这些功能,资料却很匮乏。
我经常需要给人讲解正则表达式的相关知识,时常惋惜的是,开发人员为这些问题所困扰;正因为如此,本书的写作动机便是着力弥补现有资料的缺陷。
相对于正则文档和速成教学帖子,本书深入讲解了匹配背后的原理,往往会举一反三,告诉读者,这里为何这样写,如果改成其他形式,会造成什么结构;并且,集中讲解和比较了多种语言中正则表达式用法的异同,方便读者把现成的正则表达式“移植”到自己的工作环境中。
样书试读:http://www.china-pub.com/computers/common/mianfeisd.asp?id=199266&iteye
本书来源:互动出版网 http://www.china-pub.com/
发表评论
-
【互动出版网】2013双12全场科技类图书6.5折封顶
2013-12-12 16:30 1142【互动出版网】2013双12全场科技类图书6.5折封顶 ... -
C#编程兵书
2013-08-28 17:43 1205《C#编程兵书》 基本信息 作者: 张志强 胡君 丛书 ... -
C++编程兵书
2013-08-28 17:24 1221《C++编程兵书》 基本 ... -
HTML+CSS网站开发兵书
2013-08-28 17:04 1407《HTML+CSS网站开发兵书 ... -
Java编程兵书
2013-08-27 17:57 1229《Java编程兵书》 基本 ... -
网络运维与管理2013超值精华本
2013-08-27 17:44 1350《网络运维与管理2013超值精华本》 基本信息 作者: ... -
HTML5游戏开发进阶指南
2013-08-27 17:26 1326《HTML5游戏开发进阶指 ... -
ASP.NET MVC 4高级编程(第4版)
2013-08-26 17:58 1097《ASP.NET MVC 4高级编程(第4版)》 基本信息 ... -
嗨翻C语言
2013-08-26 17:40 1175《嗨翻C语言》 基本信息 作者: (美)David Gr ... -
C++ Primer中文版(第5版)
2013-08-26 17:20 1142《C++ Primer中文版(第5版) 》 基本信息 作 ... -
云计算原理与实践
2013-08-20 17:02 577《云计算原理与实践》 基本信息 作者: 游小明 罗光春 ... -
微信公众平台搭建与开发揭秘
2013-08-20 16:53 994《微信公众平台搭建与开发揭秘》 基本信息 作者: 易伟 ... -
精通iOS开发(第5版)
2013-08-20 16:25 1038《精通iOS开发(第5版)》 基本信息 原书名:Begi ... -
企业门户(Portal)项目实施方略与开发指南
2013-08-20 16:12 968《企业门户(Portal)项目实施方略与开发指南》 基本信 ... -
Java开发手册
2013-08-20 15:56 944《Java开发手册》 基本信息 作者: 桂颖 谷涛 出 ... -
Unity3D手机游戏开发
2013-08-08 17:33 1132《Unity3D手机游戏开发》 基本信息 作者: 金玺曾 ... -
矛与盾:黑客攻防命令大曝光
2013-08-08 16:30 770《矛与盾:黑客攻防命令大曝光》 基本信息 作者: awk ... -
视觉繁美:信息可视化方法与案例解析
2013-08-08 16:10 927《视觉繁美:信息可视 ... -
精益设计: 设计团队如何改善用户体验
2013-08-08 15:55 768《精益设计: 设计团队如何改善用户体验》 基本信息 原书 ... -
云计算与OpenStack(虚拟机Nova篇)
2013-08-08 15:19 948《云计算与OpenStack(虚拟机Nova篇)》 基本信 ...
相关推荐
在"正则指引_panoi9_python_正则指引_正则_"这个主题下,我们将深入探讨Python中的正则表达式使用方法和技巧。 1. **导入re模块** Python中,正则表达式的操作集中在`re`模块,首先要通过`import re`引入该模块。 ...
《正则指引》是余晟老师翻译自《Mastering Regular Expressions》的一部经典著作,专为中文用户提供全面而深入的正则表达式学习资源。这本书涵盖了正则表达式的各个方面,从基础概念到高级技巧,旨在帮助读者系统地...
《正则指引》是余晟撰写的一本关于正则表达式的专著,旨在提供清晰、完整的正则表达式知识体系。这本书深入浅出地讲解了正则表达式的各种概念、语法和使用技巧,适合初学者和有经验的开发者进一步提升对正则表达式的...
在“正则指引”这本书中,读者将深入理解正则表达式的概念和语法,学习如何利用正则表达式高效地处理文本。书中的内容可能包括以下几个方面: 1. **基础概念**:了解什么是正则表达式,它的起源和作用。学习基本的...
正则引擎主要可以分为两大类:一种是DFA,一种是NFA。这两种引擎都有了很久的历史(至今二十多年),当中也由这两种引擎产生了很多变体!于是POSIX的出台规避了不必要变体的继续产生。这样一来,主流的正则引擎又分为3...
《正则指引》针对作者在开发中遇到的实际问题,以及其他开发人员咨询的问题,总结出一套使用正则表达式解题的办法,并通过具体的例子指导读者拆解、分析问题。全书分为三大部分:第一部分主要讲解正则表达式的基础...
### Java程序员:一刻钟精通正则表达式 #### 前言 正则表达式是一种强大的文本处理工具,被广泛应用于各种编程语言中,包括Java。对于Java开发者来说,掌握正则表达式的使用方法是非常重要的技能之一。本文将详细...
用正则表达式判断数字字符: re.Search(“[0123456789]”,charStr) != None 其中[0123456789]以字符串形式给出正则表达式,他是一个字符组,表示可以是0到9的任意一个字符。 Net中Regex.IsMatch(charStr,”...
在学习C#正则表达式时,字符组是一个基础且重要的概念,用于匹配某个位置可能出现的所有指定字符。在本文中,我们将深入探讨C#正则表达式中的字符组、范围表示法、元字符、转义处理以及简记法等内容。 首先,字符组...
"正则指引.pdf"这本书可能涵盖了正则表达式的基础概念,包括如何构造简单的匹配模式,如何使用预定义字符类,以及如何处理复杂的模式如贪婪与非贪婪匹配、回溯和前瞻断言。进阶部分可能涉及正则表达式的优化技巧、...
锋利的jQuery 第2版 清晰版 还有手打的完整书签 方便阅读
安装后,通过界面的指引,输入你的正则表达式和待测试的文本,开始调试之旅。 总的来说,正则表达式调试器MTracer是一个强大的辅助工具,对于任何需要频繁处理字符串匹配的开发者来说,它都是一个不可或缺的利器。...
正则表达式的内建支持通常只限于脚本语言如Ruby,Perl和awk等,这是一个耻辱:尽管正则表达式很神秘,但它是一个强大的文本处理工具。通过内建而不是通过程序库接口来支持它,有很大的不同。 正则表达式只是一种指定...
"正则表达式参考手册.chm"提供了详细的指引和实例,帮助开发者从基础开始,逐步掌握正则表达式的各种技巧和高级用法。通过深入学习和实践,你可以熟练运用正则表达式解决各种文本处理问题,提高编程效率。记住,正则...
由于使用了正则表达式的全局标志`g`,每次exec调用都会在lastIndex属性的指引下从上一次匹配结束的位置开始查找新的匹配项,直到所有匹配项都被找到,此时lastIndex属性值将等于input字符串的长度。 需要注意的是,...
根据描述中的指引,可以参考www.regexlab.com/zh/deelx/syntax.htm获取详细信息。DEELX语法兼容Perl 5的大部分特性,包括基本的字符类、量词、分组、反向引用等。例如,`.`代表任意单个字符,`*`表示前面的元素可...
标签部分给出了三个关键词:"C#"、"正则表达式"和"内容提取",这些关键词帮助我们缩小了文章讨论的范围,并指引读者关注这三个方面的技术细节。 在给出的部分内容中,首先介绍了通过正则表达式去除HTML文本中不同...
一、读者指引 读者指引帮助你掌握本文的梗概。以免你看了大半才明白这编文章不适合你,给你造成视觉污染。 如果你正在用ASP写程序,或者你正在写一些诸如BBS、留言溥或表单数据检查之类的东东那就值得一看...