4.5 用户推荐指数
科技
类型
8.9
豆瓣评分
可以朗读
语音朗读
340千字
字数
2018-11-01
发行日期
展开全部
主编推荐语
文本自动化处理黑魔法,贴近中文世界。
内容简介
本书综合作者自己遇到的实际问题,以及其他开发人员咨询的问题,总结出一套巧妙运用正则表达式的办法,并通过具体的例子指导读者拆解、分析问题。全书分为三部分:第一部分主要讲解正则表达式的基础知识,涵盖了正则表达式中常见的各种功能和结构;第二部分主要讲解关于正则表达式的更深入的知识,详细探讨了编码问题、匹配原理、解题思路;第三部分将之前介绍的各种知识落实到常用语言.NET、Java、JavaScript、PHP、Python、Ruby、Objective-C、Golang中,在详细介绍了在这些语言中正则表达式的具体用法之外,还辨析了版本之间的细微差异。本书既可以作为专门的学习用书,也可以作为备查的参考手册。 本书适合经常需要进行文本处理(比如日志分析或网络运维)的技术人员、熟悉常用开发语言的程序员,以及已经对正则表达式有一定了解的读者阅读。
目录
- 版权信息
- 引子: 关于正则表达式……
- 引入正则表达式
- 引入正则表达式之后
- 返璞归真 ——评《正则指引》
- 克制我们内心的冲动
- 前言
- 本书结构
- 本书的读者对象
- 致谢
- 读者服务
- 第一部分
- 第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.1.1 Static String Escape(String text)
- 10.3.1.2 String[] GetGroupNames()
- 10.3.1.3 int[] GetGroupNumbers()
- 10.3.1.4 bool IsMatch(String input)
- 10.3.1.5 String Replace(String input, String replacement)
- 10.3.1.6 String[] Split(String input)
- 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.1.1 static boolean matches(String regex, CharSequence input)
- 11.3.1.2 String[] split(CharSequence text)
- 11.3.1.3 String[] split(CharSequence text, int limit)
- 11.3.1.4 static String quote(String text)
- 11.3.2 Matcher
- 11.3.2.1 String group(int n)
- 11.3.2.2 String group()
- 11.3.2.3 int groupCount()
- 11.3.2.4 int start(n)
- 11.3.2.5 int start()
- 11.3.2.6 int end(n)
- 11.3.2.7 int end()
- 11.3.2.8 String replaceAll(String replacement)
- 11.3.2.9 Matcher appendReplacement(StringBuffer sb, String replacement)
- 11.3.2.10 Matcher appendTail(StringBuffer sb)
- 11.3.3 String
- 11.3.3.1 boolean matches(String regex)
- 11.3.3.2 String replaceFirst(String regex, String replacement)
- 11.3.3.3 String replaceAll(String regex, String replacement)
- 11.3.3.4 String[] split(String regex)
- 11.3.3.5 String[] split(String regex, int limit)
- 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.1.1 RegExp.exec(string)
- 12.3.1.2 RegExp.test(string)
- 12.3.2 String
- 12.3.2.1 string.match(RegExp)
- 12.3.2.2 string.search(RegExp)
- 12.3.2.3 string.replace(RegExp, replacement)
- 12.3.2.4 string.replace(RegExp, function)
- 12.3.2.5 string.split(RegExp)
- 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.1.1 PREG_PATTERN_ORDER
- 13.3.1.2 PREG_SET_ORDER
- 13.3.1.3 PREG_SPLIT_OFFSET_CAPTURE
- 13.3.1.4 PREG_OFFSET_CAPTURE
- 13.3.1.5 PREG_SPLIT_NO_EMPTY
- 13.3.1.6 PREG_SPLIT_DELIMI_CAPTURE
- 13.3.1.7 PREG_NO_ERROR
- 13.3.1.8 PREG_INTERNAL_ERROR
- 13.3.1.9 PREG_BACKTRACK_LIMIT_ERROR
- 13.3.1.10 PREG_RECURSION_LIMIT_ERROR
- 13.3.1.11 PREG_BAD_UTF8_ERROR
- 13.3.1.12 PREG_BAD_UTF8_OFFSET_ERROR
- 13.3.1.13 PCRE_VERSION
- 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.2.1 Python 2
- 14.2.2.2 Python 3
- 14.2.2.3 关于编码
- 14.2.3 Unicode属性
- 14.2.4 字符组简记法
- 14.2.4.1 Python 2
- 14.2.4.2 Python 3
- 14.2.5 单词边界
- 14.2.5.1 Python 2
- 14.2.5.2 Python 3
- 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.1.1 BRE
- 18.1.1.2 ERE
- 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 常用的正则表达式
- 整数
- 十六进制数
- MD5字符串
- 浮点数
- 逗号分隔的整数
- 中文字符
- 中文间多余的空白字符
- 价格
- 手机号码
- 固定电话号码
- 邮政编码
- 身份证号码
- QQ号
- ISBN号
- IPv4地址
- IPv6地址
- 时间字符串
- 日期字符串
- Windows路径
- UNIX路径
- 主机名
- 电子邮件地址
- URL
- HTML Entity
- HTML tag
- Title tag
- 成对的tag
- img tag
- table tag
- href tag
- JavaScript代码
- XML格式注释
- 附录C 常用的正则表达式工具及资源
- 在线类
- RegexPal
- Larsolavtorvik
- ReWork
- Nregex
- Rubular
- MyRegexp
- RegExLib
- Regular-Expressions
- 软件类
- Expresso
- RegexBuddy
- PowerGREP
- JFLAP
- RegexUtil
- 正则表达式术语中英文对照表
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。