《正则指引》针对作者在开发中遇到的实际问题,以及其他开发人员咨询的问题,总结出一套使用正则表达式解题的办法,并通过具体的例子指导读者拆解、分析问题。全书分为三大部分:第一部分主要讲解正则表达式的基础知识,涵盖了常见正则表达式中的各种功能和结构;第二部分主要讲解关于正则表达式的更深入的知识,详细探讨了编码问题、匹配原理、解题思路;第三部分将之前介绍的各种知识落实到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 常用的正则表达式工具及资源
关于此书:从甜美的、柔软的、透气的凝胶体,到发光的塑料材料,以及能自行组装的性能,此书都将带你领略塑料的迷人美丽。这里没
《堆栈的艺术:Photoshop风光摄影后期叠加处理技法》内容简介:本书介绍了堆栈的基本概念及原理,借助大量的实际案例,讲解各种堆栈
《现代C:概念剖析和编程实践》内容简介:这本书按级别组织,编号从0到3。初始级别0,名为“邂逅”,它将总结使用C进行编程的基础知
《中国历代画家佳作品鉴:王个簃》内容简介:王个簃绘画继承了吴昌硕“重、拙、大”的绘画特点,与此同时潜心研究青藤、白阳、八大
ThefirstcompletereferenceguidetotheessentialWebprotocolAsapplicationsandservices...
如果不是「包浩斯」,世界不是你眼中所見的樣子最前衛的藝術設計學校最前衛的藝術設計運動最經典.最普及的「包浩斯」論著英、美
《图文中国史》内容简介:樊树志教授为满足广大读者对于简明历史普及读物的需求,在毕生研究以及两部畅销通史著作——《国史概要》
《IP授权商业化:从入门到精通》内容简介:本书是针对授权行业的入门指导及案例分析著作,也是对新形势下IP授权商业化流程进行全面
本书介绍了微波中继通信系统、短波通信系统、卫星通信系统、移动通信系统和光纤通信系统。内容包括系统的组成、相关的新技术、系
《赵孟頫临圣教序》内容简介:中国书法史第一个绕不过去的人物是王羲之,第二个是赵孟頫,而赵孟頫又以“右军法嫡”之集大成者见称
《原来历史可以这样好玩2》内容简介:超涨知识!爆笑趣味学历史!超生动、超立体、超有趣再现历史场景! 百万美食播主小缸和阿灿首
《汽车维修电工实战28天》内容简介:本书主要讲解汽车维修电工入门的相关知识及操作技能,内容包括汽车维修电工入门,汽车电源系统
Thelatestinstalmentintherenowned"PamphletArchitectureseries"featuresthetechnolog...
《小学生减压涂色书——给古诗涂上颜色》内容简介:这套书秉承着“疗愈效果的是传统之美”的理念,在诗、词、曲和神话中选取涂色的
在线阅读本书World-renowneddesignandinnovationfirmIDEOusesfirst-handobservationstoinfor...
大数据时代计算机数据处理技术探究 内容简介 随着科技的发展,在信息化的今天,大量数据呈爆发式的增长,对这些数据的处理,是一个非常大的挑战,所以必须对数据处理技术...
ApacheHadoopisidealfororganizationswithagrowingneedtostoreandprocessmassiveappli...
你想要在互联网上赚钱吗?想要做好电子商务吗?那么你一定不能忽视社交媒体的力量。不管你想要营销的是实物商品、电子类产品还是
该书是Wrox红皮书中的畅销品种,从初版、1.0版、1.1版到目前的2.0版,已经3次升级,不仅内容更加完善、实用,还展现了.NET2.0的最
《生死课》内容简介:《生死课》是袁凌的短篇记录合集,记录了各色生存地面上辗转的小人物,或是历史地层中叠压的无名氏。这些人物