《正则表达式经典实例》讲解了基于8种常用的编程语言使用正则表达式的经典实例。书中提供了上百种可以在实战中使用的实例,以帮助读者使用正则表达式来处理数据和文本。对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,《正则表达式经典实例》给出了涉及基于C#、Java、JavaScript、Perl、PHP、Python、Ruby和VB.NET等编程语言的解决方案。《正则表达式经典实例》的读者对象是对正则表达式感兴趣的软件开发人员和系统管理员。《正则表达式经典实例》旨在教会读者很多新的技巧以及如何避免语言特定的陷阱,读者可以通过《正则表达式经典实例》提供的实例解决方案库来解决实践中的复杂问题。
目录
- 第1章正则表达式简介
- 1.1正则表达式的定义
- 1.2使用正则表达式的工具
- 第2章正则表达式的基本技巧
- 2.1匹配字面文本
- 2.2匹配不可打印字符
- 2.3匹配多个字符之一
- 2.4匹配任意字符
- 2.5匹配文本行起始和/或文本行结尾
- 2.6匹配整个单词
- 2.7Unicode代码点、属性、区块和脚本
- 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创建正则表达式对象
- 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逐行查找
- 第4章合法性验证和格式化
- 4.1E-mail地址的合法性验证
- 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.13ISBN的合法性验证
- 4.14ZIP代码的合法性验证
- 4.15加拿大邮政编码的合法性验证
- 4.16英国邮政编码的合法性验证
- 4.17查找使用邮局信箱的地址
- 4.18转换姓名格式
- 4.19信用卡号码的合法性验证
- 4.20欧盟增值税代码
- 第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在某个特定范围之内的十六进制数
- 6.7浮点数
- 6.8含有千位分隔符的数
- 6.9罗马数字
- 第7章URL、路径和Internet地址
- 7.1URL合法性验证
- 7.2在全文中查找URL
- 7.3在全文中查找加引号的URL
- 7.4在全文中寻找加括号的URL
- 7.5把URL转变为链接
- 7.6URN合法性验证
- 7.7通用URL的合法性验证
- 7.8从URL中提取通信协议方案
- 7.9从URL中抽取用户名
- 7.10从URL中抽取主机名
- 7.11从URL中抽取端口号
- 7.12从URL中抽取路径
- 7.13从URL中抽取查询
- 7.14从URL中抽取片段
- 7.15域名合法性验证
- 7.16匹配IPv4地址
- 7.17匹配IPv6地址
- 7.18Windows路径的合法性验证
- 7.19分解Windows路径
- 7.20从Windows路径中抽取盘符
- 7.21从UNC路径中抽取服务器和共享名
- 7.22从Windows路径中抽取文件夹
- 7.23从Windows路径中抽取文件名
- 7.24从Windows路径中抽取文件扩展名
- 7.25去除文件名中的非法字符
- 第8章标记语言和数据交换
- 8.1查找XML风格的标签
- 8.2把标签b替换为strong
- 8.3删掉除em和strong之外的所有XML风格标签
- 8.4匹配XML名称
- 8.5添加p和br标签将纯文本转换为HTML
- 8.6在XML风格的标签中查找某个特定属性
- 8.7向不包含cellspacing属性的 table标签中添加该属性
- 8.8删除XML风格的注释
- 8.9在XML风格的注释中查找单词
- 8.10替换在CSV文件中使用的分隔符
- 8.11抽取某个特定列中的CSV域
- 8.12匹配INI段头
- 8.13匹配INI段块
-
8.14匹配INI名称-值对