本书提供了140多个经过验证的秘诀,涵盖了解决现实生活中绝大多数问题所需的一切。通过这本书,初学者可以掌握基本技能和工具,而程序员和经验丰富的用户能够了解大量细节。每个秘诀都提供了可以直接使用的样例。 这一版涵盖了C#、Java、JavaScript、Perl、PHP、Python、Ruby和VB.NET所使用的正则流派。读者可以通过大量的实践方案学到实用的新技能,避开特定流派的陷阱,节省宝贵的时间。
售 价:¥
纸质售价:¥61.40购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
版 权
版权声明
内容提要
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名称-值对
问题描述
解决方案
讨论
参见
作者简介
封面介绍
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜