内容简介
第一部分
第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 断言和反向引用之间的关系
4.4.6 逆序环视的诡异之处
第5章 匹配模式
5.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 表达式中的优先级
6.4 回车和换行
第二部分
第7章 Unicode
7.1 基础知识
7.2 关于编码
7.3 尽量使用Unicode编码
7.4 Unicode与字符组简记法
7.5 规范化问题
7.6 单词边界
7.7 码值转义序列
7.8 Unicode属性
7.8.1 Unicode Property
7.8.2 Unicode Block
7.8.3 Unicode Script
7.9 Unicode属性列表
7.9.1 Unicode Property
7.9.2 Unicode Block
7.9.3 Unicode Script
7.10 POSIX字符组
7.11 Emoji
第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 正则表达式可以匹配各种文本
9.4.4 滥用正则表达式
第三部分
第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 Stnng
11.4 常用操作示例
11.4.1 验证
11.4.2 提取
11.4.3 替换
11.4.4 切分
11.5 Java 8和Java 9的新改进
11.5.1 Java 8的新改进
11.5.2 Java 9的新改进
第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.3.11 preg_replace_callback_array
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.2.10 条件匹配
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,string[,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章 Objective-C
16.1 预备知识
16.2 正则功能详解
16.2.1 列表
16.2.2 字符组
16.2.3 Unicode属性
16.2.4 字符组简记法
16.2.5 单词边界
16.2.6 行起始/结束位置
16.2.7 环视
16.2.8 匹配模式
16.2.9 纯文本模式
16.2.10 捕获分组的引用
16.2.11 命名分组
16.3 正则API简介
16.3.1 predicateWithFormat
16.3.2 rangeOfString
16.3.3 regularExpressionWithPattern
16.3.4 initWithPattern
16.3.5 pattern
16.3.6 numberOfCaptureGroups
16.3.7 numberOfMatchesInString
16.3.8 stringByReplacingMatchesInString
16.3.9 replacingMatchesInString
16.3.10 escapedPatternForString
16.3.11 escapedTemplateForString
16.4 常用操作示例
16.4.1 验证
16.4.2 提取
16.4.3 替换
16.4.4 切分
第17章 Golang
17.1 预备知识
17.2 正则功能详解
17.2.1 列表
17.2.2 字符组
17.2.3 Unicode属性
17.2.4 字符组简记法
17.2.5 单词边界
17.2.6 行起始/结束位置
17.2.7 环视
17.2.8 匹配模式
17.2.9 纯文本模式
17.2.10 捕获分组的引用
17.2.11 命名分组
17.3 正则API简介
17.3.1 Compile和MustCompile
17.3.2 MatchString
17.3.3 FindString
17.3.4 FindAllString
17.3.5 FindStringIndex
17.3.6 FindAllStringIndex
17.3.7 FindStringSubmatch
17.3.8 FindAllStringSubmatch
17.3.9 SubexpNames
17.3.10 Split
17.3.11 ReplaceAllString
17.3.12 ReplaceAllLiteralString
17.4 常用操作示例
17.4.1 验证
17.4.2 提取
17.4.3 替换
17.4.4 切分
第18章 Linux/UNIX
18.1 POSIX
18.1.1 POSIX规范
18.1.2 POSIX字符组
18.2 vi
18.2.1 字符组及简记法
18.2.2 量词
18.2.3 多选结构和捕获分组
18.2.4 环视
18.2.5 锚点和单词边界
18.2.6 替换操作的特殊字符
18.2.7 replacement中的特殊变量
18.2.8 补充
18.3 grep
18.3.1 基本用法
18.3.2 字符组
18.3.3 锚点和单词边界
18.3.4 量词
18.3.5 多选结构和捕获分组
18.3.6 options
18.3.7 egrep和fgrep
18.3.8 补充
18.4 awk
18.4.1 基本用法
18.4.2 字符组及简记法
18.4.3 锚点和单词边界
18.4.4 量词
18.4.5 多选结构
18.4.6 补充
18.5 sed
18.5.1 基本用法
18.5.2 字符组及简记法
18.5.3 锚点和单词边界
18.5.4 量词
18.5.5 多选结构和捕获分组
18.5.6 options
18.5.7 补充
18.6 总结
附录A 常用语言中正则特性一览
附录B 常用的正则表达式
附录C 常用的正则表达式工具及资源
正则表达式术语中英文对照表