• 正则指引(第2版)
21年品牌 40万+商家 超1.5亿件商品

正则指引(第2版)

40 4.5折 89 九品

仅1件

北京通州
认证卖家担保交易快速发货售后保障

作者余晟

出版社电子工业出版社

出版时间2018-10

版次2

装帧其他

货号9030-5-06

上书时间2020-10-10

观海听风书店

十年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九品
图书标准信息
  • 作者 余晟
  • 出版社 电子工业出版社
  • 出版时间 2018-10
  • 版次 2
  • ISBN 9787121351303
  • 定价 89.00元
  • 装帧 其他
  • 开本 16开
  • 纸张 胶版纸
【内容简介】
本书综合作者自己遇到的实际问题,以及其他开发人员咨询的问题,总结出一套巧妙运用正则表达式的办法,并通过具体的例子指导读者拆解、分析问题。全书分为三部分:*部分主要讲解正则表达式的基础知识,涵盖了正则表达式中常见的各种功能和结构;第二部分主要讲解关于正则表达式的更深入的知识,详细探讨了编码问题、匹配原理、解题思路;第三部分将之前介绍的各种知识落实到常用语言.NET、Java、JavaScript、PHP、Python、Ruby、Objective-C、Golang中,在详细介绍了在这些语言中正则表达式的具体用法之外,还辨析了版本之间的细微差异。本书既可以作为专门的学习用书,也可以作为备查的参考手册。
【作者简介】
余晟,非正统型技术爱好者,有多年研发经验,目前在在线教育行业从事研发与架构管理的工作。在强调技术追求的同时,倡导全面、完整的技术路线和技术文化,业余写作、翻译、审校了若干技术图书。个人公众号为“余晟以为”(yurii-says)。
【目录】
第一部分 

第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 常用量词 ............... 19 

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 非捕获分组 ........... 55 

3.5 补充....................... 56 

3.5.1 转义 .......... 56 

3.5.2 URL Rewrite ................................ 56 

3.5.3 一个例子... 58 

第4章 断言 ...................60 

4.1 单词边界 ............... 60 

4.2 行起始/结束位置 .. 62 

4.3 环视....................... 69 

4.4 补充....................... 75 

4.4.1 环视的价值 .................................. 75 

4.4.2 环视与分组编号 .......................... 76 

4.4.3 环视的支持程度 .......................... 77 

4.4.4 环视的组合 .................................. 79 

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

4.4.6 逆序环视的诡异之处 .................. 81 

第5章 匹配模式 ............83 

5.1 不区分大小写模式与模式的指定方式 .. 83 

5.2 单行模式 ............... 86 

5.3 多行模式 ............... 87 

5.4 注释模式 ............... 89 

5.5 补充....................... 91 

5.5.1 更多的模式 .................................. 91 

5.5.2 修饰符的作用范围 ...................... 91 

5.5.3 失效修饰符 .................................. 92 

5.5.4 模式与反向引用 .......................... 93 

5.5.5 冲突策略... 93 

5.5.6 哪种方式更好 .............................. 94 

第6章 其他 ...................95 

6.1 转义....................... 95 

6.1.1 字符串转义与正则转义 .............. 95 

6.1.2 元字符的转义 .............................. 99 

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

6.1.4 字符组中的转义 ........................ 103 

6.2 正则表达式的处理形式 ........................ 103 

6.2.1 函数式处理 ................................ 104 

6.2.2 面向对象式处理 ........................ 104 

6.2.3 比较 ........ 105 

6.2.4 线程安全性 ................................ 106 

6.3 表达式中的优先级 ................................ 108 

6.4 回车和换行 ......... 109 

第二部分 

第7章 Unicode ...........112 

7.1 基础知识 ............. 112 

7.2 关于编码 ............. 115 

7.3 尽量使用Unicode编码 ........................ 116 

7.4 Unicode与字符组简记法 ..................... 120 

7.5 规范化问题 ......... 122 

7.6 单词边界 ............. 123 

7.7 码值转义序列 ..... 125 

7.8 Unicode属性 ...... 127 

7.8.1 Unicode Property ....................... 128 

7.8.2 Unicode Block ........................... 128 

7.8.3 Unicode Script ........................... 129 

7.9 Unicode属性列表 ................................. 130 

7.9.1 Unicode Property ....................... 130 

7.9.2 Unicode Block ........................... 131 

7.9.3 Unicode Script ........................... 135 

7.10 POSIX字符组 .. 135 

7.11 Emoji ................. 136 

第8章 匹配原理 ..........138 

8.1 有穷自动机 ......... 138 

8.2 正则表达式的匹配过程 ........................ 139 

8.3 回溯..................... 142 

8.4 NFA和DFA ....... 144

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

9.1 关于元素的三种逻辑 ............................ 146 

9.1.1 必须出现. 147 

9.1.2 可能出现. 147 

9.1.3 不能出现. 148 

9.2 正则表达式的常见操作 ........................ 150 

9.2.1 提取 ........ 150 

9.2.2 验证 ........ 156 

9.2.3 替换 ........ 160 

9.2.4 切分 ........ 165 

9.3 正则表达式的优化建议 ........................ 167 

9.3.1 使用缓存. 167 

9.3.2 尽量准确地表达意图 ................ 168 

9.3.3 避免重复匹配 ............................ 168 

9.3.4 独立出文本和锚点 .................... 169 

9.4 别过分依赖正则表达式 ........................ 170 

9.4.1 彻底放弃字符串操作 ................ 170 

9.4.2 思维定式. 171 

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

9.4.4 滥用正则表达式 ........................ 173 

第三部分 

第10章 .NET ..............176 

10.1 预备知识 ........... 176 

10.2 正则功能详解 ... 177 

10.2.1 列表 .... 177 

10.2.2 字符组 178 

10.2.3 Unicode属性 ......................... 178 

10.2.4 字符组简记法........................ 179 

10.2.5 单词边界 ............................... 179 

10.2.6 行起始/结束位置 .................. 180 

10.2.7 环视 .... 181 

10.2.8 匹配模式 ............................... 181 

10.2.9 捕获分组的引用 .................... 182 

10.3 正则API简介 .. 183 

10.3.1 Regex .. 183 

10.3.2 Match .. 187 

10.4 常用操作示例 ... 188 

10.4.1 验证 .... 188 

10.4.2 提取 .... 189 

10.4.3 替换 .... 189 

10.4.4 切分 .... 190 

第11章 Java ..............191 

11.1 预备知识 ........... 191 

11.2 正则功能详解 ... 192 

11.2.1 列表 .... 192 

11.2.2 字符组. 192 

11.2.3 Unicode属性 ......................... 194 

11.2.4 字符组简记法 ........................ 194 

11.2.5 单词边界 ................................ 194 

11.2.6 行起始/结束位置 ................... 195 

11.2.7 环视 .... 196 

11.2.8 匹配模式 ................................ 196 

11.2.9 纯文本模式 ............................ 197 

11.2.10 捕获分组的引用 .................. 197 

11.3 正则API简介 .. 197 

11.3.1 Pattern . 198 

11.3.2 Matcher .................................. 200 

11.3.3 String ... 203 

11.4 常用操作示例 ... 204 

11.4.1 验证 .... 204 

11.4.2 提取 .... 204 

11.4.3 替换 .... 205 

11.4.4 切分 .... 206 

11.5 Java 8和Java 9的新改进 ................... 206 

11.5.1 Java 8的新改进 ..................... 206 

11.5.2 Java 9的新改进 ..................... 207 

第12章 JavaScript .....208 

12.1 预备知识 ........... 208 

12.2 正则功能详解 ... 209 

12.2.1 列表 .... 209 

12.2.2 字符组 210 

12.2.3 字符组简记法........................ 211 

12.2.4 单词边界 ............................... 211 

12.2.5 行起始/结束位置 .................. 212 

12.2.6 环视 .... 212 

12.2.7 匹配模式 ............................... 213 

12.2.8 捕获分组的引用 .................... 214 

12.3 正则API简介 .. 215 

12.3.1 RegExp 215 

12.3.2 String ... 218 

12.4 常用操作示例 ... 221 

12.4.1 验证 .... 221 

12.4.2 提取 .... 222 

12.4.3 替换 .... 223 

12.4.4 切分 .... 223 

12.5 关于ActionScript ................................ 223 

12.5.1 RegExp 223 

12.5.2 匹配规则 ............................... 224 

12.5.3 匹配模式 ............................... 224 

12.5.4 正则API ................................ 224 

第13章 PHP ...............225 

13.1 预备知识 ........... 225 

13.2 正则功能详解 ... 227 

13.2.1 列表 .... 227 

13.2.2 字符组 228 

13.2.3 Unicode属性 ......................... 229 

13.2.4 字符组简记法........................ 229 

13.2.5 单词边界 ............................... 230 

13.2.6 行起始/结束位置 .................. 230 

13.2.7 环视 .... 231 

13.2.8 匹配模式 ............................... 231

13.2.9 纯文本模式 ........................... 232 

13.2.10 捕获分组的引用 .................. 232 

13.3 正则API简介 .. 233 

13.3.1 PREG 常量说明 ................... 233 

13.3.2 preg_quote ............................. 235 

13.3.3 preg_ grep .............................. 235 

13.3.4 preg_match ............................. 236 

13.3.5 preg_match_all ....................... 237 

13.3.6 preg_last_error ....................... 239 

13.3.7 preg_replace ........................... 239 

13.3.8 preg_replace_callback ............ 240 

13.3.9 preg_filter ............................... 240 

13.3.10 preg_split ............................. 241 

13.3.11 preg_replace_callback_array 242 

13.4 常见的正则操作举例 .......................... 243 

13.4.1 验证 .... 243 

13.4.2 提取 .... 243 

13.4.3 替换 .... 244 

13.4.4 切分 .... 244 

第14章 Python ...........245 

14.1 预备知识 ........... 245 

14.2 正则功能详解 ... 246 

14.2.1 列表 .... 246 

14.2.2 字符组 247 

14.2.3 Unicode属性 ......................... 248 

14.2.4 字符组简记法........................ 249 

14.2.5 单词边界 ............................... 250 

14.2.6 行起始/结束位置 .................. 251 

14.2.7 环视 .... 252 

14.2.8 匹配模式 ............................... 252 

14.2.9 捕获分组的引用 .................... 253 

14.2.10 条件匹配 ............................. 253 

14.3 正则API简介 .. 254 

14.3.1 RegexObject ........................... 254 

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

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

14.3.4 MatchObject ........................... 256 

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

14.3.6 re.findall(pattern, string[, flags]) ............................... 258 

14.3.7 re.finditer(pattern, string[, flags]) .............................. 258 

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

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

14.4 常用操作示例 ... 260 

14.4.1 验证 .... 260 

14.4.2 提取 .... 261 

14.4.3 替换 .... 262 

14.4.4 切分 .... 262 

第15章 Ruby ..............263 

15.1 预备知识 ........... 263 

15.2 正则功能详解 ... 264 

15.2.1 列表 .... 264 

15.2.2 字符组 264 

15.2.3 Unicode属性 ......................... 265 

15.2.4 字符组简记法........................ 266 

15.2.5 单词边界 ............................... 266 

15.2.6 行起始/结束位置 .................. 267 

15.2.7 环视 .... 268 

15.2.8 匹配模式 ............................... 268 

15.2.9 捕获分组的引用 .................... 269 

15.3 正则API简介 .. 269 

15.3.1 Regexp 269 

15.3.2 Regexp.match(text) ................ 271 

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

15.3.4 String.index(Regexp) ............. 273 

15.3.5 String.scan(Regexp) ............... 273 

15.3.6 String.slice(Regexp) ............... 274 

15.3.7 String.split(Regexp) ............... 274 

15.3.8 String.sub(Regexp, Str) .......... 275 

15.3.9 String.gsub(Regexp, String) ... 276 

15.4 常用操作示例 ... 276

15.4.1 验证 .... 276 

15.4.2 提取 .... 277 

15.4.3 替换 .... 277 

15.4.4 切分 .... 277 

15.5 Ruby 1.9的新变化 .............................. 278 

第16章 Objective-C ..280 

16.1 预备知识 ........... 280 

16.2 正则功能详解 ... 282 

16.2.1 列表 .... 282 

16.2.2 字符组 283 

16.2.3 Unicode属性 ......................... 284 

16.2.4 字符组简记法........................ 284 

16.2.5 单词边界 ............................... 285 

16.2.6 行起始/结束位置 .................. 286 

16.2.7 环视 .... 287 

16.2.8 匹配模式 ............................... 287 

16.2.9 纯文本模式 ........................... 288 

16.2.10 捕获分组的引用 .................. 289 

16.2.11 命名分组 .............................. 290 

16.3 正则API简介 .. 291 

16.3.1 predicateWithFormat .............. 291 

16.3.2 rangeOfString ......................... 292 

16.3.3 regularExpressionWithPattern 292 

16.3.4 initWithPattern ....................... 292 

16.3.5 pattern . 293 

16.3.6 numberOfCaptureGroups ....... 293 

16.3.7 numberOfMatchesInString ..... 293 

16.3.8 stringByReplacingMatchesInString .......................... 294 

16.3.9 replacingMatchesInString ...... 294 

16.3.10 escapedPatternForString ...... 294 

16.3.11 escapedTemplateForString ... 295 

16.4 常用操作示例 ... 295 

16.4.1 验证 .... 295 

16.4.2 提取 .... 295 

16.4.3 替换 .... 297 

16.4.4 切分 .... 298 

第17章 Golang...........299 

17.1 预备知识 ........... 299 

17.2 正则功能详解 ... 301 

17.2.1 列表 .... 301 

17.2.2 字符组 301 

17.2.3 Unicode属性 ......................... 302 

17.2.4 字符组简记法........................ 303 

17.2.5 单词边界 ............................... 303 

17.2.6 行起始/结束位置 .................. 303 

17.2.7 环视 .... 304 

17.2.8 匹配模式 ............................... 304 

17.2.9 纯文本模式 ........................... 305 

17.2.10 捕获分组的引用 .................. 305 

17.2.11 命名分组 .............................. 306 

17.3 正则API简介 .. 307 

17.3.1 Compile和MustCompile ...... 307 

17.3.2 MatchString ........................... 308 

17.3.3 FindString .............................. 308 

17.3.4 FindAllString ......................... 309 

17.3.5 FindStringIndex ..................... 309 

17.3.6 FindAllStringIndex ................ 309 

17.3.7 FindStringSubmatch .............. 309 

17.3.8 FindAllStringSubmatch ......... 310 

17.3.9 SubexpNames ........................ 310 

17.3.10 Split ... 311 

17.3.11 ReplaceAllString .................. 311 

17.3.12 ReplaceAllLiteralString ....... 312 

17.4 常用操作示例 ... 312 

17.4.1 验证 .... 312 

17.4.2 提取 .... 312 

17.4.3 替换 .... 313 

17.4.4 切分 .... 313 

第18章 Linux/UNIX ....314 

18.1 POSIX ............... 314 

18.1.1 POSIX规范 ........................... 314 

18.1.2 POSIX字符组 ....................... 316 

18.2 vi ....................... 317 

18.2.1 字符组及简记法 .................... 317 

18.2.2 量词 .... 318 

18.2.3 多选结构和捕获分组 ............ 319 

18.2.4 环视 .... 319 

18.2.5 锚点和单词边界 .................... 319 

18.2.6 替换操作的特殊字符 ............ 320 

18.2.7 replacement中的特殊变量 ... 322 

18.2.8 补充 .... 322 

18.3 grep ................... 323 

18.3.1 基本用法 ............................... 323 

18.3.2 字符组 324 

18.3.3 锚点和单词边界 .................... 324 

18.3.4 量词 .... 324 

18.3.5 多选结构和捕获分组 ............ 325 

18.3.6 options . 325 

18.3.7 egrep和fgrep ........................ 326 

18.3.8 补充 .... 327 

18.4 awk .................... 327 

18.4.1 基本用法 ............................... 327 

18.4.2 字符组及简记法 .................... 328 

18.4.3 锚点和单词边界 .................... 329 

18.4.4 量词 .... 329 

18.4.5 多选结构 ............................... 330 

18.4.6 补充 .... 330 

18.5 sed ..................... 330 

18.5.1 基本用法 ............................... 330 

18.5.2 字符组及简记法 .................... 331 

18.5.3 锚点和单词边界 .................... 331 

18.5.4 量词 .... 332 

18.5.5 多选结构和捕获分组 ............ 332

18.5.6 options . 333 

18.5.7 补充 .... 333 

18.6 总结................... 334 

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

附录B 常用的正则表达式 ...............................340 

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

正则表达式术语中英文对照表 ...........................363 
点击展开 点击收起

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP