《正则指引》针对作者在开发中遇到的实际问题,以及其他开发人员咨询的问题,总结出一套使用正则表达式解题的办法,并通过具体的例子指导读者拆解、分析问题。全书分为三大部分:第一部分主要讲解正则表达式的基础知识,涵盖了常见正则表达式中的各种功能和结构;第二部分主要讲解关于正则表达式的更深入的知识,详细探讨了编码问题、匹配原理、解题思路;第三部分将之前介绍的各种知识落实到6种常用语言.NET、Java、JavaScript、PHP、Python、Ruby中,不但详细介绍了语言中正则表达式的用法,更点明了版本之间的细微差异,既可以作为专门学习的教材,也可以作为有用的参考手册。
本书适合经常需要进行文本处理(比如日志分析或网络运维)的技术人员、熟悉常用开发语言的程序员,以及已经对正则表达式有一定了解的读者阅读。
第一部 分
第1章 字符组
1.1 普通字符组
1.2 关于Python的基础知识
1.3 普通字符组(续)
1.4 元字符与转义
1.5 排除型字符组
1.6 字符组简记法
1.7 字符组运算
1.8 POSIX字符组
第2章 量词
2.1 一般形式
2.2 常用量词
2.3 数据提取
2.4 点号
2.5 滥用点号的问题
2.6 忽略优先量词
2.7 转义
第3章 括号
3.1 分组
3.2 多选结构
3.3 引用分组
3.3.1 反向引用
3.3.2 各种引用的记法
3.3.3 命名分组
3.4 非捕获分组
3.5 补充
3.5.1 转义
3.5.2 URL Rewrite
3.5.3 一个例子
第4章 断言
4.1 单词边界
4.2 行起始/结束位置
4.3 环视
4.4 补充
4.4.1 环视的价值
4.4.2 环视与分组编号
4.4.3 环视的支持程度
4.4.4 环视的组合
4.4.5 断言和反向引用之间的关系
第5章 匹配模式
5.1 不区分大小写模式
5.1.1 模式的指定方式
5.2 单行模式
5.3 多行模式
5.4 注释模式
5.5 补充
5.5.1 更多的模式
5.5.2 修饰符的作用范围
5.5.3 失效修饰符
5.5.4 模式与反向引用
5.5.5 冲突策略
5.5.6 哪种方式更好
第6章 其他
6.1 转义
6.1.1 字符串转义与正则转义
6.1.2 元字符的转义
6.1.3 彻底消除元字符的特殊含义
6.1.4 字符组中的转义
6.2 正则表达式的处理形式
6.2.1 函数式处理
6.2.2 面向对象式处理
6.2.3 比较
6.2.4 线程安全性
6.3 表达式中的优先级
第二部 分
第7章 Unicode
7.1 关于编码
7.2 推荐使用Unicode编码
7.3 Unicode匹配规则
7.4 单词边界
7.5 码值
7.6 Unicode属性
7.6.1 Unicode Property
7.6.2 Unicode Block
7.6.3 Unicode Script
7.7 Unicode属性列表
7.7.1 Unicode Property
7.7.2 Unicode Block
7.7.3 Unicode Script
7.8 POSIX字符组
第8章 匹配原理
8.1 有穷自动机
8.2 正则表达式的匹配过程
8.3 回溯
8.4 NFA和DFA
第9章 常见问题的解决思路
9.1 关于元素的三种逻辑
9.1.1 必须出现
9.1.2 可能出现
9.1.3 不能出现
9.2 正则表达式的常见操作
9.2.1 提取
9.2.2 验证
9.2.3 替换
9.2.4 切分
9.3 正则表达式的优化建议
9.3.1 使用缓存
9.3.2 尽量准确地表达意图
9.3.3 避免重复匹配
9.3.4 独立出文本和锚点
9.4 别过分依赖正则表达式
9.4.1 彻底放弃字符串操作
9.4.2 思维定势
9.4.3 正则表达式可以匹配各种文本
第三部 分
第10章 .NET
10.1 预备知识
10.2 正则功能详解
10.2.1 列表
10.2.2 字符组
10.2.3 Unicode属性
10.2.4 字符组简记法
10.2.5 单词边界
10.2.6 行起始/结束位置
10.2.7 环视
10.2.8 匹配模式
10.2.9 捕获分组的引用
10.3 正则API简介
10.3.1 Regex
10.3.2 Match
10.4 常用操作示例
10.4.1 验证
10.4.2 提取
10.4.3 替换
10.4.4 切分
第11章 Java
11.1 预备知识
11.2 正则功能详解
11.2.1 列表
11.2.2 字符组
11.2.3 Unicode属性
11.2.4 字符组简记法
11.2.5 单词边界
11.2.6 行起始/结束位置
11.2.7 环视
11.2.8 匹配模式
11.2.9 纯文本模式
11.2.10 捕获分组的引用
11.3 正则API简介
11.3.1 Pattern
11.3.2 Matcher
11.3.3 String
11.4 常用操作示例
11.4.1 验证
11.4.2 提取
11.4.3 替换
11.4.4 切分
第12章 JavaScript
12.1 预备知识
12.2 正则功能详解
12.2.1 列表
12.2.2 字符组
12.2.3 字符组简记法
12.2.4 单词边界
12.2.5 行起始/结束位置
12.2.6 环视
12.2.7 匹配模式
12.2.8 捕获分组的引用
12.3 正则API简介
12.3.1 RegExp
12.3.2 String
12.4 常用操作示例
12.4.1 验证
12.4.2 提取
12.4.3 替换
12.4.4 切分
12.5 关于ActionScript
12.5.1 RegExp
12.5.2 匹配规则
12.5.3 匹配模式
12.5.4 正则API
第13章 PHP
13.1 预备知识
13.2 正则功能详解
13.2.1 列表
13.2.2 字符组
13.2.3 Unicode属性
13.2.4 字符组简记法
13.2.5 单词边界
13.2.6 行起始/结束位置
13.2.7 环视
13.2.8 匹配模式
13.2.9 纯文本模式
13.2.10 捕获分组的引用
13.3 正则API简介
13.3.1 PREG 常量说明
13.3.2 preg_quote
13.3.3 preg_ grep
13.3.4 preg_match
13.3.5 preg_match_all
13.3.6 preg_ last_ error
13.3.7 preg_replace
13.3.8 preg_ replace_ callback
13.3.9 preg_ filter
13.3.10 preg_ split
13.4 常见的正则操作举例
13.4.1 验证
13.4.2 提取
13.4.3 替换
13.4.4 切分
第14章 Python
14.1 预备知识
14.2 正则功能详解
14.2.1 列表
14.2.2 字符组
14.2.3 Unicode属性
14.2.4 字符组简记法
14.2.5 单词边界
14.2.6 行起始/结束位置
14.2.7 环视
14.2.8 匹配模式
14.2.9 捕获分组的引用
14.3 正则API简介
14.3.1 RegexObject
14.3.2 re.compile(regex[, flags])
14.3.3 re.search(pattern, string[, flags])
14.3.4 MatchObject
14.3.5 re.match(pattern, string[, flags])
14.3.6 re.findall(pattern, sting[, flags])
14.3.7 re.finditer(pattern, string[, flags])
14.3.8 re.split(pattern, string[, maxsplit=0, flags=0])
14.3.9 re.sub(pattern, repl, string[, count, flags])
14.4 常用操作示例
14.4.1 验证
14.4.2 提取
14.4.3 替换
14.4.4 切分
第15章 Ruby
15.1 预备知识
15.2 正则功能详解
15.2.1 列表
15.2.2 字符组
15.2.3 Unicode属性
15.2.4 字符组简记法
15.2.5 单词边界
15.2.6 行起始/结束位置
15.2.7 环视
15.2.8 匹配模式
15.2.9 捕获分组的引用
15.3 正则API简介
15.3.1 Regexp
15.3.2 Regexp.match(text)
15.3.3 Regexp.quote(text)和Regexp.escape(text)
15.3.4 String.index(Regexp)
15.3.5 String.scan(Regexp)
15.3.6 String.slice(Regexp)
15.3.7 String.split(Regexp)
15.3.8 String.sub(Regexp, Str)
15.3.9 String.gsub(Regexp, String)
15.4 常用操作示例
15.4.1 验证
15.4.2 提取
15.4.3 替换
15.4.4 切分
15.5 Ruby 1.9的新变化
第16章 Linux/UNIX
16.1 POSIX
16.1.1 POSIX规范
16.1.2 POSIX字符组
16.2 vi
16.2.1 字符组及简记法
16.2.2 量词
16.2.3 多选结构和捕获分组
16.2.4 环视
16.2.5 锚点和单词边界
16.2.6 替换操作的特殊字符
16.2.7 replacement中的特殊变量
16.2.8 补充
16.3 grep
16.3.1 基本用法
16.3.2 字符组
16.3.3 锚点和单词边界
16.3.4 量词
16.3.5 多选结构和捕获分组
16.3.6 options
16.3.7 egrep和fgrep
16.3.8 补充
16.4 awk
16.4.1 基本用法
16.4.2 字符组及简记法
16.4.3 锚点和单词边界
16.4.4 量词
16.4.5 多选结构
16.4.6 补充
16.5 sed
16.5.1 基本用法
16.5.2 字符组及简记法
16.5.3 锚点和单词边界
16.5.4 量词
16.5.5 多选结构和捕获分组
16.5.6 options
16.5.7 补充
16.6 总结
附录A 常用语言中正则特性一览
附录B 常用的正则表达式
附录C 常用的正则表达式工具及资源
《中国资本市场三十年》内容简介:本书是为中国资本市场三十年而写,由导论、11章和文献附录,以及后记组成,重点研究中国资本市场
GPS与ArcGIS基础与实践(第3版) 内容简介 本书是全球定位系统(gps)和地理信息系统(gis)方面的一本难得的入门书,它将基本原理与实践操作紧密...
本书是有关软件需求的经典教材,本书全面而深入地讲述了软件开发中一个至关重要的问题——软件需求问题。软件开发人员及用户往往
内容简介本书全面系统地论述了信号与系统分析的基本理论和方法。全书共11章,内容包括:信号与系统、线性时不变系统,周期信号的
《人人都该懂的科学简史》内容简介:什么是科学与科学家?科学的未来将去往何方? 科学革命如何从无到有?为什么说蒸汽机是工业革命
想象一下,一个网页只有HTML,没有CSS,那就是素颜和上妆的区别。而一个网页只有CSS,没用CSS3,那就是马车和汽车的区别!汽车代
《中国文化史》内容简介:本书是史学家吕思勉的代表作,1940年由开明书店初版,为《吕著中国通史》之上册。全书共十八章,从婚姻、
《通信线路维护实用手册》是专门介绍通信线路维护知识的实用技术书籍,书中重点介绍了光电缆基本知识、光电缆接续与测试技术以及
《基鹏医生的抗疫纪事》内容简介:《基鹏医生的抗疫纪事》为“华西坝文化”丛书(第三辑)之一,采用日记的形式,以四川大学华西医
MichaelKircher德国慕尼黑西门子研究院高级软件工程师,MichaelKircherSoftwareUG(haftungsbeschränkt)公司总...
《我看电商》内容简介:《我看电商》是作者近30年从事零售及电子商务管理的总结和分享。初版于2013年上市,累计发行超10万册。应众
PS高手炼成记-Photoshop CC 2017从入门到精通-(附光盘) 本书特色 本书是一本综合实战型的Photoshop教程,除了有理论知识、工具、抠图、...
《柏台故事》内容简介:柏台之名起于汉朝。御史府中多植柏树,而朝廷禁省,统称台阁,所以御史府别称柏台。明朝改前朝御史台为都察
体现日本民艺大师柳宗理“实用之美”的白瓷酱油壶;传承两百年的小久慈烧煎茶碗;当代最受欢迎的工业设计大师马克·纽森充满未来
与传统的用户应用程序开发不同,内核环境更加复杂多变,任何问题都会严重影响系统的稳定性、安全性和性能,所以一定要确保内核代
★他被认为是“世界能源问题的终结者”;★他被誉为我们时代的科学超人──“活着的尼古拉•特斯拉”;★他被选入畅销书《被禁止的
Windows操作系统原理(第2版) 本书特色 Windows操作系统是微软公司开发的个人电脑操作系统,一经推出便以其方便性、易用性征服了广大用户,迅速成为应用...
《机器学习与流场数据可视化》内容简介:科学计算可视化(ScientificVisualization,SciVis)是计算机图形学的一个重要研究方向,是
高等职业教育课程改革规划教材嵌入式C程序设计基础 本书特色 本书根据嵌入式软件设计需要的“程序设计基础”知识编写而成。主要内容包括C语言语法基础,C程序设计基础...
《嘻嘻哈哈陪娃图鉴·我们一起玩游戏》内容简介:本书写给家长们的陪娃手册,由北师大教育学博士李芳主编、针对3至6岁有宝宝的家庭