4.4 2.4 字符串匹配和搜索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.5 2.5 字符串搜索和替换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.6 2.6 字符串忽略大小写的搜索替换 . . . . . . . . . . . . . . . . . . . . . 49
4.7 2.7 最短匹配模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.8 2.8 多行匹配模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.9 2.9 将 Unicode 文本标准化 . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.10 2.10 在正则式中使用 Unicode . . . . . . . . . . . . . . . . . . . . . . . . 54
4.11 2.11 删除字符串中不需要的字符 . . . . . . . . . . . . . . . . . . . . . . 55
4.12 2.12 审查清理文本字符串 . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.13 2.13 字符串对齐 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.14 2.14 合并拼接字符串 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.15 2.15 字符串中插入变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.16 2.16 以指定列宽格式化字符串 . . . . . . . . . . . . . . . . . . . . . . . 65
4.17 2.17 在字符串中处理 html 和 xml . . . . . . . . . . . . . . . . . . . . . 66
4.18 2.18 字符串令牌解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.19 2.19 实现一个简单的递归下降分析器 . . . . . . . . . . . . . . . . . . . 70
4.20 2.20 字节字符串上的字符串操作 . . . . . . . . . . . . . . . . . . . . . . 78
5 第三章:数字日期和时间 81
5.1 3.1 数字的四舍五入 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.2 3.2 执行精确的浮点数运算 . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.3 3.3 数字的格式化输出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.4 3.4 二八十六进制整数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.5 3.5 字节到大整数的打包与解包 . . . . . . . . . . . . . . . . . . . . . . . 88
5.6 3.6 复数的数学运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5.7 3.7 无穷大与 NaN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.8 3.8 分数运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.9 3.9 大型数组运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.10 3.10 矩阵与线性代数运算 . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.11 3.11 随机选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.12 3.12 基本的日期与时间转换 . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.13 3.13 计算最后一个周五的日期 . . . . . . . . . . . . . . . . . . . . . . . 103
5.14 3.14 计算当前月份的日期范围 . . . . . . . . . . . . . . . . . . . . . . . 104
5.15 3.15 字符串转换为日期 . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.16 3.16 结合时区的日期操作 . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6 第四章:迭代器与生成器 110
6.1 4.1 手动遍历迭代器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6.2 4.2 代理迭代 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.3 4.3 使用生成器创建新的迭代模式 . . . . . . . . . . . . . . . . . . . . . 112
6.4 4.4 实现迭代器协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
6.5 4.5 反向迭代 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
6.6 4.6 带有外部状态的生成器函数 . . . . . . . . . . . . . . . . . . . . . . . 118
6.7 4.7 迭代器切片 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
6.8 4.8 跳过可迭代对象的开始部分 . . . . . . . . . . . . . . . . . . . . . . . 120
6.9 4.9 排列组合的迭代 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
6.10 4.10 序列上索引值迭代 . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
6.11 4.11 同时迭代多个序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
ii