读书月福利
欢迎光临中图网 请 | 注册

正则指引(第2版)

作者:余晟
出版社:电子工业出版社出版时间:2017-02-01
开本: 16开 页数: 388
中 图 价:¥62.3(7.0折) 定价  ¥89.0 登录后可看到会员价
暂时缺货 收藏
运费6元,满69元免运费
?快递不能达地区使用邮政小包,运费14元起
云南、广西、海南、新疆、青海、西藏六省,部分地区快递不可达
本类五星书更多>

正则指引(第2版) 版权信息

正则指引(第2版) 本书特色

√ 来自真实场景与高频问题的妙用法门
√ 覆盖所有主流编程语言及其版本差异
√ 源代码及文本数据处理走向高效之路
√ 贯通编码问题→匹配原理→解题思路
√ 适用日志分析|网络运维|自动化测试
√ 深入原理结构差异以利现成成果移植

正则指引(第2版) 内容简介

本书综合作者自己遇到的实际问题,以及其他开发人员咨询的问题,总结出一套巧妙运用正则表达式的办法,并通过具体的例子指导读者拆解、分析问题。全书分为三部分:靠前部分主要讲解正则表达式的基础知识,涵盖了正则表达式中常见的各种功能和结构;第二部分主要讲解关于正则表达式的更深入的知识,详细探讨了编码问题、匹配原理、解题思路;第三部分将之前介绍的各种知识落实到常用语言.NET、Java、JavaScript、PHP、Python、Ruby、Objective-C、Golang中,在详细介绍了在这些语言中正则表达式的具体用法之外,还辨析了版本之间的细微差异。本书既可以作为专门的学习用书,也可以作为备查的参考手册。

正则指引(第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 常用量词 ............... 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
展开全部

正则指引(第2版) 作者简介

余晟,非正统型技术爱好者,有多年研发经验,目前在在线教育行业从事研发与架构管理的工作。在强调技术追求的同时,倡导全面、完整的技术路线和技术文化,业余写作、翻译、审校了若干技术图书。个人公众号为“余晟以为”(yurii-says)。

商品评论(0条)
暂无评论……
书友推荐
编辑推荐
返回顶部
中图网
在线客服