神奇的匹配 正则表达式求精之旅作者:王蕾出版时间:2014内容简介 本书从正则表达式的基本概念、基本语法入手,着重于数字验证、字符串验证、数字和字符串混合验证及HTML处理等各个方面的应用。并基于目前流行的程序语言和应用环境(如C#、ASP.NET、JSP、JavaScript或PHP),全面介绍了创建正则表达式的方法,以及正则表达式在Web环境中的各种应用。目录第1篇 正则表达式基础第1章 外行看正则表达式 11.1 什么是正则表达式 11.2 本书使用的测试工具 21.3 理解元字符 31.3.1 匹配位置的元字符 31.3.2 匹配字符的元字符 41.3.3 元字符总结 51.4 文字匹配 71.4.1 字符类 71.4.2 字符转义 91.4.3 反义 91.4.4 限定符 101.5 字符的操作 151.5.1 替换 151.5.2 分组 171.5.3 反向引用 171.6 正则的其他操作 191.6.1 零宽度断言 191.6.2 负向零宽度断言 201.6.3 匹配选项 211.6.4 注释 211.6.5 优先级顺序 221.6.6 递归匹配 221.7 典型正则表达式解释 231.7.1 匹配Windows操作系统的名称 231.7.2 匹配HTML标记 231.7.3 匹配HTML标记之间的内容 241.7.4 匹配CSV文件内容 25第2章 数字验证的方法 272.1 9种数值验证 272.1.1 字符串只包含数字的验证 272.1.2 字符串只包含整数的验证 312.1.3 字符串指定范围的整数验证 322.1.4 字符串为实数的验证 352.1.5 字符串指定精度的实数验证 382.1.6 科学计数法的数值验证 392.1.7 二进制数值的验证 392.1.8 八进制数值的验证 402.1.9 十六进制数值的验证 412.2 4种国内电话号码的验证 432.2.1 国内手机号码验证 432.2.2 固定电话号码(不包括区号)验证 442.2.3 区号+固定电话号码验证 452.2.4 区号+固定电话号码+分机号码验证 472.2.5 固定电话号码验证总结 482.3 2种身份证号码验证 492.3.1 15位身份证号码验证 502.3.2 18位身份证号码验证 512.4 银行卡和信用卡号验证 512.5 邮政编码验证 522.5.1 国内邮政编码验证 522.5.2 国际邮政编码验证 532.6 4种IP地址验证 532.6.1 简单IP地址验证 532.6.2 精确IP地址验证 542.6.3 子网内部IP地址验证 562.6.4 64位IP地址验证 57第3章 常用字符串验证方法 603.1 5种英文单词验证 603.1.1 小写英文单词验证 603.1.2 大写英文单词验证 613.1.3 英文单词的分隔符验证 623.1.4 否定验证 643.1.5 具有重复特征的英文单词验证 673.2 6种非单词字符串验证 693.2.1 英文标点符号验证 693.2.2 中文标点符号验证 703.2.3 中文文本验证 703.2.4 特殊字符验证 713.2.5 密码验证 713.2.6 字符表的分类 763.3 常用的文件名称和路径验证 763.3.1 通配符 763.3.2 指定文件扩展名的验证 773.3.3 指定文件名的验证 783.3.4 包含指定字符串的文件全名验证 783.3.5 排除两端存在空白字符的文件全名验证 793.3.6 文件路径验证 813.4 4种网络常用元素验证 823.4.1 电子邮件验证 823.4.2 主机名称验证 833.4.3 HTTP地址验证 853.4.4 FTP地址验证 86第4章 常见数字和字符混合验证 874.1 5种数学表达式验证 874.1.1 操作数验证 874.1.2 操作符验证 884.1.3 简单数学表达式验证 884.1.4 只含操作数和操作符的数学表达式验证 894.1.5 包含小括号的数学表达式验证 904.2 8种日期和时间验证 924.2.1 年验证 924.2.2 月验证 934.2.3 日验证 944.2.4 年月日格式的日期验证 954.2.5 24小时制时分秒格式的时间验证 964.2.6 12小时制时分秒格式的时间验证 974.2.7 带毫秒的时间验证 984.2.8 长格式的日期和时间验证 1004.3 4种编码规范验证 1014.3.1 类名称验证 1014.3.2 声明变量表达式验证 1024.3.3 函数名称验证 1024.3.4 声明函数表达式验证 1034.4 3种车牌号码验证 1064.4.1 通用车牌号码验证 1064.4.2 武警车牌号码验证 108第5章 常见的HTML元素验证和处理 1105.1 6种HTML元素验证的基础 1105.1.1 HTML标记验证 1105.1.2 非封闭HTML标记验证 1115.1.3 封闭HTML标记验证 1125.1.4 属性赋值表达式验证 1135.1.5 HTML中的注释验证 1165.1.6 HTML中的脚本代码块验证 1175.2 4种非封闭的HTML元素验证 1185.2.1 <br>元素验证 1195.2.2 <hr>元素验证 1215.2.3 <a>元素验证 1245.2.4 <input>元素验证 1285.3 封闭的HTML元素验证 1295.4 处理HTML元素 1305.4.1 提取HTML标记 1305.4.2 提取HTML标记之间的内容 1315.4.3 提取URL 1325.4.4 提取图像的URL 1335.4.5 提取HTML页面的标题 134第2篇 ASP.NET正则表达式应用第6章 C#常用数据类型的检查与转换 1366.1 数值数据类型的检查与转换 1366.1.1 整数检查 1366.1.2 实数检查 1376.1.3 整数和字符串之间的转换 1386.1.4 浮点数和字符串之间的转换 1406.2 布尔数据类型检查与转换 1416.2.1 布尔值检查 1416.2.2 布尔值和字符串之间的转换 1416.3 时间数据类型检查与转换 1426.3.1 时间数据类型检查 1426.3.2 时间和字符串之间的转换 1436.4 数据类型检查与转换应用实例 144第7章 不可变字符串与可变字符串的处理 1467.1 15种不可变字符串String处理 1467.1.1 String类和对象 1467.1.2 插入字符串 1477.1.3 替换字符串 1477.1.4 填充字符串 1487.1.5 删除字符串 1497.1.6 分割字符串 1497.1.7 比较字符串 1507.1.8 连接字符串 1517.1.9 处理字符串中的空白 1527.1.10 转换字符串大小写 1537.1.11 匹配和检索字符串 1537.1.12 格式化字符串 1567.1.13 获取子字符串 1567.1.14 编码字符串 1577.1.15 不可变字符串String处理的应用 1577.2 8种可变字符串StringBuilder处理 1597.2.1 StringBuilder类和对象 1597.2.2 追加字符串 1597.2.3 插入字符串 1617.2.4 替换字符串 1627.2.5 删除字符串 1637.2.6 复制字符串 1647.2.7 处理字符串容量 1657.2.8 可变字符串StringBuilder处理的应用 165第8章 常见的.NET框架中正则表达式及其应用 1678.1 10种.NET框架中的正则表达式类库 1678.1.1 System.Text.RegularExpressions命名空间 1678.1.2 正则表达式类Regex 1688.1.3 正则表达式选项 1688.1.4 检查是否匹配表达式 1698.1.5 匹配单个匹配项 1708.1.6 匹配多个匹配项 1718.1.7 替换 1738.1.8 使用委托MatchEvaluator处理匹配结果 1748.1.9 获取分组名称 1758.1.10 分割表达式 1758.2 14种正则表达式类Regex处理字符串 1768.2.1 只包含数字验证 1768.2.2 整数验证 1768.2.3 实数验证 1768.2.4 电话号码验证 1778.2.5 邮政编码验证 1778.2.6 身份证号码验证 1778.2.7 银行卡号验证 1778.2.8 IP地址验证 1788.2.9 日期和时间验证 1788.2.10 车牌号码验证 1788.2.11 电子邮件验证 1798.2.12 URL验证 1798.2.13 提取网页标题 1798.2.14 提取网页中的图像地址 1808.2.15 提取网页中的HTTP地址 181第9章 常见ASP.NET验证控件 1839.1 ASP.NET验证简介 1839.2 2种非空验证 1849.2.1 无初始值的非空验证 1859.2.2 指定初始值的验证 1859.3 3种范围验证 1869.3.1 整数范围验证 1869.3.2 字母范围验证 1879.3.3 日期范围验证 1889.4 3种比较验证 1899.4.1 两个控件内容的比较验证 1899.4.2 检查控件内容的数据类型 1909.4.3 指定的值和控件内容的比较验证 1919.5 2种自定义验证 1929.5.1 自定义客户端验证 1929.5.2 自定义服务端验证 1939.6 7种正则表达式验证 1949.6.1 整数验证 1949.6.2 数值验证 1959.6.3 电话号码验证 1969.6.4 身份证号码验证 1979.6.5 电子邮件验证 1989.6.6 日期和时间验证 1999.6.7 URL验证 2009.7 2种显示验证摘要 2019.7.1 在对话框上显示验证摘要 2019.7.2 在网页上显示验证摘要 202第3篇 PHP正则表达式应用第10章 常见PHP数据类型 20410.1 7种PHP常见数据类型 20410.1.1 布尔型 20410.1.2 NULL型 20410.1.3 整型 20510.1.4 浮点型 20510.1.5 字符串 20510.1.6 数组 20710.1.7 对象 20810.2 5种常见的类型转化 20910.2.1 变量类型变化 20910.2.2 强制类型转换 21010.2.3 字符串转化 21210.2.4 数字转化 21210.2.5 数组转化 21310.3 小结 213第11章 常见PHP字符串处理 21411.1 常见的3种字符串分析 21411.1.1 访问字符串中的字符 21411.1.2 处理子字符串 21511.1.3 分割字符串 21711.2 4种字符串的操作 21811.2.1 删除字符串的空白 21811.2.2 转换字符串大小写 21911.2.3 填补字符串 22011.2.4 反转字符串 22111.3 2种字符串的格式化 22111.3.1 格式化数字 22111.3.2 格式化字符串 22211.4 字符串的查找和替换 22411.4.1 查找字符串 22411.4.2 替换字符串 22511.5 3种常见的字符串的比较方法 22711.5.1 按ASCII码顺序比较 22711.5.2 按“自然排序”法比较 22811.5.3 按相似性比较 22911.6 处理HTML和URL 23011.6.1 HTML标签的清理 23011.6.2 HTML实体的处理 23111.6.3 URL字符串的解析 23211.6.4 URL编码处理 23411.6.5 查询字符串的构造 23511.7 小结 236第12章 PHP与正则表达式的应用 23712.1 关于POSIX扩展库的正则表达式函数 23712.1.1 模式匹配 23712.1.2 模式替换 23812.1.3 模式分割 23912.2 关于PCRE库的正则表达式函数 23912.2.1 对正则表达式匹配 24012.2.2 取得正则表达式的全部匹配 24112.2.3 返回与模式匹配的数组单元 24112.2.4 正则表达式的替换 24212.2.5 正则表达式的拆分 24312.3 PHP与正则表达式的综合应用 24312.3.1 表单验证 24312.3.2 UBB代码 24712.3.3 分析Apache日志文件 25112.4 小结 254第4篇 JSP正则表达式应用第13章 常见的JSP中数据处理 25513.1 5种JSP中的常用数据类型 25513.1.1 整数类型及应用 25513.1.2 浮点类型及应用 25813.1.3 字符类型及应用 25913.1.4 布尔类型及应用 26013.1.5 字符串类型及应用 26113.2 2种JSP中数据类型的转换 26213.2.1 自动类型转换及应用 26213.2.2 强制类型转换及应用 26313.3 7种JSP中字符串数据的处理 26413.3.1 字符串与其他类型数据的转换 26413.3.2 字符串的分析 26513.3.3 字符串的查找与替换 26713.3.4 字符串数据的整理 26813.3.5 字符串的比较 26913.3.6 字符串的连接 27013.3.7 字符串的格式化 27113.4 小结 272第14章 常见的JSP中正则表达式 27314.1 2种JSP中的正则表达式函数 27314.1.1 Pattern类 27314.1.2 Matcher类 27514.1.3 正则表达式常用的四种功能 27814.2 JSP中正则表达式的常见应用示例 28214.2.1 电子邮件地址的校验 28214.2.2 URL地址的校验 28314.2.3 电话号码的校验 28414.3 小结 286第5篇 JavaScript正则表达式应用第15章 常见的JavaScript中数据类型及其转化 28715.1 常见的三种JavaScript数据类型 28715.1.1 数字基本类型 28715.1.2 字符串基本类型 28815.1.3 布尔值基本类型 28915.2 数据类型转化 28915.2.1 基本数据类型转换 28915.2.2 将字符串转化为整数 29015.2.3 将字符串转化为浮点数 290第16章 常见JavaScript字符串和数组处理 29116.1 6种字符串格式处理 29116.1.1 获取字符串的长度 29116.1.2 根据指定的Unicode编码返回一个字符串 29116.1.3 将字符串分割并存储到数组中 29216.1.4 比较两个字符串的大小 29216.1.5 将字符串转化为小写格式 29316.1.6 将字符串转化为大写格式 29416.2 最基本的字符串查找、替换 29416.2.1 获取指定字符(串)第一次在字符串中出现的位置 29416.2.2 获取指定字符(串)最后一次在字符串中出现的位置 29516.2.3 替换字符串中指定的内容 29616.3 字符串截取、组合的方法 29616.3.1 返回字符串中指定位置处的字符 29716.3.2 将一个或多个字符串连接到当前字符串的末尾 29816.3.3 获取指定位置的字符的Unicode编码 29816.3.4 从字符串中提取子串(1) 29916.3.5 从字符串中提取子串(2) 30016.3.6 从字符串中提取子串(3) 30116.4 字符串HTML格式化 30116.4.1 在字符串两端加入锚点标志 30216.4.2 在字符串的两端加上粗体标志 30216.4.3 在字符串两端加入斜体标签 30216.4.4 在指定字符串的两端加上大字体标志 30316.4.5 在字符串的两端加上固定宽度字体标记 30316.4.6 设置字符串输出时的字体大小 30416.4.7 设置字符串输出时的前景色 30516.4.8 在字符串上加入超链接 30516.4.9 在字符串两端加上小字体标记 30616.4.10 在字符串两端加入下标标签 30716.4.11 在字符串两端加入上标标签 30716.4.12 在字符串的两端加入下画线标记 30816.5 Array对象的方法及使用 30816.5.1 连接其他数组到当前数组末尾 30916.5.2 将数组元素连接为字符串 30916.5.3 删除数组中的第一个元素 31016.5.4 删除数组中最后一个元素 31016.5.5 删除或替换数组中部分数据 31116.5.6 将指定的数据添加到数组中 31216.5.7 在数组前面插入数据 31316.5.8 获取数组中的一部分数据 31316.5.9 反序排列数组中的元素 31416.5.10 对数组中的元素进行排序 31416.5.11 返回一个包含数组中全部数据的字符串 315第17章 常见JavaScript正则表达式应用 31717.1 正则表达式对象RegExp及其应用 31717.1.1 正则表达式的创建 31717.1.2 判断字符串中是否存在匹配内容 31717.1.3 对字符串进行匹配检测 31817.1.4 编译正则表达式 31917.1.5 替换字符串中的指定内容 32017.2 处理匹配的结果 32017.2.1 获取字符串中所有的匹配信息 32017.2.2 获取第一次匹配的起始位置(1) 32117.2.3 获取第一次匹配的起始位置(2) 32217.2.4 获取子匹配的结果 32217.2.5 获取与正则表达式进行匹配检测的字符串 32417.2.6 获取最近一次匹配的内容 32417.2.7 获取最近一次匹配的最后一个子匹配 32517.2.8 获取匹配的内容的最后一个索引位置 32517.2.9 获取匹配内容左侧的字符信息 32617.2.10 获取匹配内容右侧的字 上一篇: 世界著名计算机教材精选 Java软件结构与数据结构 第四版 下一篇: 数据库技术专题 Oracle数据库性能优化