计算机
类型
可以朗读
语音朗读
535千字
字数
2014-10-01
发行日期
展开全部
主编推荐语
8种编程语言正则实例教材,提高技巧,避免陷阱。
内容简介
全书基于8种常用的编程语言,给出了140多个使用正则表达式的经典实例,以帮助读者使用正则表达式来处理数据和文本,旨在教会读者很多新的技巧以及如何避免语言特定的陷阱,读者可以通过本书提供的实例解决方案库来解决实践中的复杂问题。
目录
- 版权信息
- 版权声明
- 内容提要
- O'Reilly Media,Inc.介绍
- 业界评论
- 前言
- 不同版本带来的混乱
- 目标读者
- 涉及的技术
- 本书的组织结构
- 排版约定
- 代码示例的使用
- 联系我们
- 致谢
- 第1章 正则表达式简介
- 1.1 正则表达式的定义
- 1.1.1 众多正则表达式流派
- 1.1.2 本书涵盖的正则流派
- 1.2 使用正则表达式进行查找和替换
- 众多替代文本流派
- 1.3 正则表达式工具
- 1.3.1 RegexBuddy
- 1.3.2 RegexPal
- 1.3.3 RegexMagic
- 1.3.4 更多正则表达式在线测试工具
- 1.3.5 更多桌面正则表达式测试工具
- 1.3.6 grep
- 1.3.7 常见的文本编辑器
- 第2章 正则表达式的基本技能
- 2.1 匹配字面文本
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 2.2 匹配不可打印字符
- 问题描述
- 解决方案
- 讨论
- 不可打印字符的变体表示
- 参见
- 2.3 匹配多个字符之一
- 问题描述
- 解决方案
- 讨论
- 变体
- 流派特有的特性
- 参见
- 2.4 匹配任意字符
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 2.5 匹配文本行起始和/或文本行结尾
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 2.6 匹配完整单词
- 问题描述
- 解决方案
- 讨论
- 单词字符
- 参见
- 2.7 Unicode码位、类别、区块和字母表
- 问题描述
- 解决方案
- 讨论
- 变体
- 列出所有字符
- 参见
- 2.8 匹配多个选择分支之一
- 问题描述
- 解决方案
- 讨论
- 参见
- 2.9 分组和捕获匹配中的子串
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 2.10 再次匹配先前匹配的文本
- 问题描述
- 解决方案
- 讨论
- 参见
- 2.11 捕获和命名匹配子串
- 问题描述
- 解决方案
- 讨论
- 参见
- 2.12 把正则表达式的一部分重复多次
- 问题描述
- 解决方案
- 讨论
- 参见
- 2.13 选择最小或最大重复次数
- 问题描述
- 解决方案
- 讨论
- 参见
- 2.14 消除不必要的回溯
- 问题描述
- 解决方案
- 讨论
- 参见
- 2.15 避免失控重复
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 2.16 测试一个匹配,但不添加到整体匹配中
- 问题描述
- 解决方案
- 讨论
- 代替逆序环视
- 参见
- 2.17 根据条件匹配两者之一
- 问题描述
- 解决方案
- 讨论
- 参见
- 2.18 向正则表达式中添加注释
- 问题描述
- 解决方案
- 讨论
- 变体
- 2.19 在替代文本中添加字面文本
- 问题描述
- 解决方案
- 讨论
- 参见
- 2.20 在替代文本中添加正则匹配
- 问题描述
- 解决方案
- 讨论
- 参见
- 2.21 把部分的正则匹配添加到替代文本中
- 问题描述
- 解决方案
- 讨论
- 使用命名捕获的解决方案
- 参见
- 2.22 把匹配上下文插入到替代文本中
- 问题描述
- 解决方案
- 讨论
- 参见
- 第3章 使用正则表达式编程
- 编程语言和正则流派
- 本章涉及的编程语言
- 其他编程语言
- 3.1 在源代码中使用字面正则表达式
- 问题描述
- 解决方案
- 讨论
- 参见
- 3.2 导入正则表达式函数库
- 问题描述
- 解决方案
- 讨论
- 3.3 创建正则表达式对象
- 问题描述
- 解决方案
- 讨论
- 把正则表达式编译为CIL
- 讨论
- 参见
- 3.4 设置正则表达式选项
- 问题描述
- 解决方案
- 讨论
- 语言相关的其他选项
- 参见
- 3.5 检查是否可以在目标字符串中找到匹配
- 问题描述
- 解决方案
- 讨论
- 参见
- 3.6 测试正则表达式能否完整匹配目标字符串
- 问题描述
- 解决方案
- 讨论
- 参见
- 3.7 获取匹配文本
- 问题描述
- 解决方案
- 讨论
- 参见
- 3.8 确定匹配的位置和长度
- 问题描述
- 解决方案
- 讨论
- 参见
- 3.9 获取匹配文本的一部分
- 问题描述
- 解决方案
- 讨论
- 命名捕获
- 参见
- 3.10 获取各次匹配的列表
- 问题描述
- 解决方案
- 讨论
- 参见
- 3.11 遍历所有匹配
- 问题描述
- 解决方案
- 讨论
- 参见
- 3.12 在过程代码中对匹配结果进行验证
- 问题描述
- 解决方案
- 讨论
- 参见
- 3.13 在另一个匹配中查找匹配
- 问题描述
- 解决方案
- 讨论
- 参见
- 3.14 替换所有匹配
- 问题描述
- 解决方案
- 讨论
- 参见
- 3.15 使用匹配的子串来替换匹配
- 问题描述
- 解决方案
- 讨论
- 命名捕获
- 参见
- 3.16 使用代码中生成的替代文本来替换匹配
- 问题描述
- 解决方案
- 讨论
- 3.17 替换另一个正则式匹配内的所有匹配
- 问题描述
- 解决方案
- 讨论
- 参见
- 3.18 替换另一个正则式匹配之间的所有匹配
- 问题描述
- 解决方案
- 讨论
- 参见
- 3.19 拆分字符串
- 问题描述
- 解决方案
- 讨论
- 参见
- 3.20 拆分字符串,保留正则匹配
- 问题描述
- 解决方案
- 讨论
- 参见
- 3.21 逐行查找
- 问题描述
- 解决方案
- 讨论
- 参见
- 3.22 构造语法分析器
- 问题描述
- 解决方案
- 讨论
- 参见
- 第4章 合法性验证和格式化
- 4.1 验证电子邮件地址
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 4.2 验证和格式化北美电话号码
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 4.3 验证国际电话号码
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 4.4 验证传统日期格式
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 4.5 排除无效日期,精确验证传统日期格式
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 4.6 验证传统时间格式
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 4.7 验证ISO 8601格式的日期和时间
- 问题描述
- 解决方案
- 讨论
- 参见
- 4.8 限制输入为字母数字字符
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 4.9 限制文本长度
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 4.10 限制文本中的行数
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 4.11 验证肯定响应
- 问题描述
- 解决方案
- 讨论
- 参见
- 4.12 验证美国社会安全号码
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 4.13 验证ISBN号码
- 问题描述
- 解决方案
- 正则表达式
- 讨论
- 变体
- 参见
- 4.14 验证美国邮政编码
- 问题描述
- 解决方案
- 讨论
- 参见
- 4.15 验证加拿大邮政编码
- 问题描述
- 解决方案
- 讨论
- 参见
- 4.16 验证英国邮政编码
- 问题描述
- 解决方案
- 讨论
- 参见
- 4.17 查找使用邮政信箱的地址
- 问题描述
- 解决方案
- 讨论
- 参见
- 4.18 转换西方姓名格式
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 4.19 验证密码复杂度
- 问题描述
- 解决方案
- 讨论
- 讨论
- 参见
- 4.20 验证信用卡号码
- 问题描述
- 解决方案
- 讨论
- 使用Luhn算法做进一步验证
- 参见
- 4.21 欧盟增值税代码
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 第5章 单词、文本行和特殊字符
- 5.1 查找特定单词
- 问题描述
- 解决方案
- 讨论
- 参见
- 5.2 查找多个单词之一
- 问题描述
- 解决方案
- 讨论
- 参见
- 5.3 查找相似单词
- 问题描述
- 解决方案
- 讨论
- 参见
- 5.4 查找除某个单词之外的任意单词
- 问题描述
- 解决方案
- 讨论
- 参见
- 5.5 查找后面不是某个特定单词的任意单词
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 5.6 查找前面不是某个特定单词的任意单词
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 5.7 查找临近单词
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 5.8 查找重复单词
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 5.9 删除重复的文本行
- 问题描述
- 解决方案
- 讨论
- 参见
- 5.10 匹配包含某个单词的整行内容
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 5.11 匹配不包含某个单词的整行
- 问题描述
- 解决方案
- 讨论
- 参见
- 5.12 删除前导和拖尾的空格
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 5.13 把重复的空白替换为单个空格
- 问题描述
- 解决方案
- 讨论
- 参见
- 5.14 对正则表达式元字符进行转义
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 第6章 数字
- 6.1 整数
- 问题描述
- 解决方案
- 讨论
- 参见
- 6.2 十六进制数
- 问题描述
- 解决方案
- 讨论
- 参见
- 6.3 二进制数
- 问题描述
- 解决方案
- 讨论
- 参见
- 6.4 八进制数
- 问题描述
- 解决方案
- 讨论
- 参见
- 6.5 十进制数
- 问题描述
- 解决方案
- 讨论
- 参见
- 6.6 删除前导0
- 问题描述
- 解决方案
- 讨论
- 参见
- 6.7 特定范围之内的整数
- 问题描述
- 解决方案
- 讨论
- 参见
- 6.8 特定范围之内的十六进制数
- 问题描述
- 解决方案
- 讨论
- 参见
- 6.9 带分隔符的整数
- 问题描述
- 解决方案
- 讨论
- 参见
- 6.10 浮点数
- 问题描述
- 解决方案
- 讨论
- 参见
- 6.11 含有千位分隔符的数
- 问题描述
- 解决方案
- 讨论
- 参见
- 6.12 给数添加千位分隔符
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 6.13 罗马数字
- 问题描述
- 解决方案
- 讨论
- 把罗马数字转换为十进制数
- 参见
- 第7章 源代码和日志文件
- 7.1 关键字
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 7.2 标识符
- 问题描述
- 解决方案
- 讨论
- 参见
- 7.3 数字常量
- 问题描述
- 解决方案
- 讨论
- 参见
- 7.4 操作符
- 问题描述
- 解决方案
- 讨论
- 7.5 单行注释
- 问题描述
- 解决方案
- 讨论
- 参见
- 7.6 多行注释
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 7.7 所有注释
- 问题描述
- 解决方案
- 讨论
- 参见
- 7.8 字符串
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 7.9 包含转义符的字符串
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 7.10 字面正则表达式
- 问题描述
- 解决方案
- 讨论
- 参见
- 7.11 嵌入文档
- 问题描述
- 解决方案
- 讨论
- 参见
- 7.12 通用日志格式
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 7.13 组合日志格式
- 问题描述
- 解决方案
- 讨论
- 参见
- 7.14 Web日志中报告的无效链接
- 问题描述
- 解决方案
- 讨论
- 参见
- 第8章 URL、路径和Internet地址
- 8.1 验证URL
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.2 全文中查找URL
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.3 全文中搜索引号内的URL
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.4 全文中搜索括号内的URL
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.5 把URL转变为链接
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.6 验证URN
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.7 验证通用URL
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.8 从URL中提取通信协议
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.9 从URL中提取用户名
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.10 从URL中提取主机名
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.11 从URL中提取端口号
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.12 从URL中提取路径
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.13 从URL中提取查询参数
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.14 从URL中提取片段标识符
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.15 验证域名
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.16 匹配IPv4地址
- 问题描述
- 解决方案
- Perl
- 讨论
- 参见
- 8.17 匹配IPv6地址
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.18 验证Windows路径
- 问题描述
- 解决方案
- 讨论 盘符路径
- 参见
- 8.19 分解Windows路径
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.20 从Windows路径中提取盘符
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.21 从UNC路径中提取服务器和共享名
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.22 从Windows路径中提取文件夹名
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.23 从Windows路径中提取文件名
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.24 从Windows路径中提取文件扩展名
- 问题描述
- 解决方案
- 讨论
- 参见
- 8.25 去除文件名中的非法字符
- 问题描述
- 解决方案
- 讨论
- 参见
- 第9章 标记语言和数据格式
- 使用正则表达式处理标记语言和数据格式
- 本章中数据格式的基本规则
- 9.1 查找XML风格的标签
- 问题描述
- 解决方案
- 讨论
- 参见
- 9.2 把标签<b>替换为<strong>
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 9.3 删掉除<em>和<strong>之外的所有XML风格标签
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 9.4 匹配XML名称
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 9.5 添加<p>和<br>标签将纯文本转换为HTML
- 问题描述
- 解决方案
- 讨论
- 参见
- 9.6 解码XML实体
- 问题描述
- 解决方案
- 讨论
- 参见
- 9.7 在XML风格的标签中查找某个特定属性
- 问题描述
- 解决方案
- 讨论
- 参见
- 9.8 向不包含cellspacing属性的<table>标签中添加该属性
- 问题描述
- 解决方案
- 讨论
- 参见
- 9.9 删除XML风格的注释
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 9.10 在XML风格的注释中查找单词
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 9.11 替换CSV文件中使用的分隔符
- 问题描述
- 解决方案
- 讨论
- 参见
- 9.12 提取某个特定列中的CSV域
- 问题描述
- 解决方案
- 讨论
- 变体
- 参见
- 9.13 匹配INI段头
- 问题描述
- 解决方案
- 讨论
- 参见
- 9.14 匹配INI段块
- 问题描述
- 解决方案
- 讨论
- 参见
- 9.15 匹配INI名称-值对
- 问题描述
- 解决方案
- 讨论
- 参见
- 作者简介
- 封面介绍
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。