精通正则表达式.pdf-Qui-Note

书籍信息

书名:精通正则表达式.pdf

作者:Friedl.J.E.F
翻译:余晟
大小:45.2M
格式:PDF
版权:归原作者所有,仅供学习使用,请24小时内删除!

目录:

第1章:正则表达式入门 1 
解决实际问题 2 
作为编程语言的正则表达式 4 
以文件名做类比 4 
以语言做类比 5 
正则表达式的思维框架 6 
对于有部分经验的读者 6 
检索文本文件:egrep 6 
egrep元字符 8 
行的起始和结束 8 
字符组 9 
用点号匹配任意字符 11 
多选结构 13 
忽略大小写 14 
单词分界符 15 
小结 16 
可选项元素 17 
其他量词:重复出现 18 
括号及反向引用 20 
神奇的转义 22 
基础知识拓展 23 
语言的差异 23 
正则表达式的目标 23 
更多的例子 23 
正则表达式术语汇总 27 
改进现状 30 
总结 32 
一家之言 33 
第2章:入门示例拓展 35 
关于这些例子 36 
perl简单入门 37 
使用正则表达式匹配文本 38 
向更实用的程序前进 40 
成功匹配的副作用 40 
错综复杂的正则表达式 43 
暂停片刻 49 
使用正则表达式修改文本 50 
例子:公函生成程序 50 
举例:修整股票价格 51 
自动的编辑操作 53 
处理邮件的小工具 53 
用环视功能为数值添加逗号 59 
text-to-html转换 67 
回到单词重复问题 77 
第3章:正则表达式的特性和流派概览 83 
在正则的世界中漫步 85 
正则表达式的起源 85 
最初印象 91 
正则表达式的注意事项和处理方式 93 
集成式处理 94 
程序式处理和面向对象式处理 95 
查找和替换 98 
其他语言中的查找和替换 100 
注意事项和处理方式:小结 101 
字符串,字符编码和匹配模式 101 
作为正则表达式的字符串 101 
字符编码 105 
unicode 106 
正则模式和匹配模式 110 
常用的元字符和特性 113 
字符表示法 115 
字符组及相关结构 118 
锚点及其他“零长度断言” 129 
注释和模式修饰符 135 
分组,捕获,条件判断和控制 137 
高级话题引导 142 
第4章:表达式的匹配原理 143 
发动引擎 143 
两类引擎 144 
新的标准 144 
正则引擎的分类 145 
几句题外话 146 
测试引擎的类型 146 
匹配的基础 147 
关于范例 147 
规则1:优先选择最左端的匹配结果 148 
引擎的构造 149 
规则2:标准量词是匹配优先的 151 
表达式主导与文本主导 153 
nfa引擎:表达式主导 153 
dfa引擎:文本主导 155 
第一想法:比较nfa与dfa 156 
回溯 157 
真实世界中的例子:面包屑 158 
回溯的两个要点 159 
备用状态 159 
回溯与匹配优先 162 
关于匹配优先和回溯的更多内容 163 
匹配优先的问题 164 
多字符“引文” 165 
使用忽略优先量词 166 
匹配优先和忽略优先都期望获得匹配 167 
匹配优先、忽略优先和回溯的要旨 168 
占有优先量词和固化分组 169 
占有优先量词,?+、*+、++和{m,n}+ 172 
环视中的回溯 173 
多选结构也是匹配优先的吗 174 
发掘有序多选结构的价值 175 

nfa、dfa和posix 177 
最左最长规则 177 
posix和最左最长规则 178 
速度和效率 179 
小结:nfa与dfa的比较 180 
总结 183 
第5章:正则表达式实用技巧 185 
正则表达式的平衡法则 186 
若干简单的例子 186 
匹配连续行(续前) 186 
匹配ip地址 187 
处理文件名 190 
匹配对称的括号 193 
防备不期望的匹配 194 
匹配分隔符之内的文本 196 
了解数据,做出假设 198 
去除文本首尾的空白字符 199 
html相关范例 200 
匹配html tag 200 
匹配html link 201 
检查http url 203 
验证主机名 203 
在真实世界中提取url 206 
扩展的例子 208 
保持数据的协调性 209 
解析csv文件 213 
第6章:打造高效正则表达式 221 
典型示例 222 
稍加修改——先迈最好使的腿 223 
效率vs准确性 223 
继续前进——限制匹配优先的作用范围 225 
实测 226 
全面考察回溯 228 
posix nfa需要更多处理 229 
无法匹配时必须进行的工作 230 
看清楚一点 231 
多选结构的代价很高 231 
性能测试 232 
理解测量对象 234 
php测试 234 
java测试 235 
vb.net测试 237 
ruby测试 238 
python测试 238 
tcl测试 239 
常见优化措施 240 
有得必有失 240 
优化各有不同 241 
正则表达式的应用原理 241 
应用之前的优化措施 242 
通过传动装置进行优化 246 
优化正则表达式本身 247 
提高表达式速度的诀窍 252 
常识性优化 254 
将文字文本独立出来 255 
将锚点独立出来 256 
忽略优先还是匹配优先?具体情况具体分析 256 
拆分正则表达式 257 
模拟开头字符识别 258 
使用固化分组和占有优先量词 259 
主导引擎的匹配 260 
消除循环 261 
方法1:依据经验构建正则表达式 262 
真正的“消除循环”解法 264 
方法2:自顶向下的视角 266 
方法3:匹配主机名 267 
观察 268 
使用固化分组和占有优先量词 268 
简单的消除循环的例子 270 
消除c语言注释匹配的循环 272 
流畅运转的表达式 277 
引导匹配的工具 277 
引导良好的正则表达式速度很快 279 
完工 281 
总结:开动你的大脑 281 
第7章:perl 283 
作为语言组件的正则表达式 285 
perl的长处 286 
perl的短处 286 
perl的正则流派 286 
正则运算符和正则文字 288 
正则文字的解析方式 292 
正则修饰符 292 
正则表达式相关的perl教义 293 
表达式应用场合 294 
动态作用域及正则匹配效应 295 
匹配修改的特殊变量 299 
qr/…/运算符与regex对象 303 
构建和使用regex对象 303 
探究regex对象 305 
用regex对象提高效率 306 
match运算符 306 
match的正则运算元 307 
指定目标运算元 308 
match运算符的不同用途 309 
迭代匹配:scalar context,使用/g 312 
match运算符与环境的关系 316 
substitution运算符 318 
运算元replacement 319 
/e修饰符 319 
应用场合与返回值 321 
split运算符 321 
split基础知识 322 
返回空元素 324 
split中的特殊regex运算元 325 
split中带捕获型括号的match运算元 326 
巧用perl的专有特性 326 
用动态正则表达式结构匹配嵌套结构 328 
使用内嵌代码结构 331 
在内嵌代码结构中使用local函数 335 
关于内嵌代码和my变量的忠告 338 
使用内嵌代码匹配嵌套结构 340 
正则文字重载 341 
正则文字重载的问题 344 
模拟命名捕获 344 
效率 347 
办法不只一种 348 
表达式编译、/o修饰符、qr/???/和效率 348 
理解“原文”副本 355 
study函数 359 
性能测试 360 
正则表达式调试信息 361 
结语 363 
第8章:java 365 
java的正则流派 366 
java对\p{…}和\p{…}的支持 369 
unicode行终结符 370 
使用java.util.regex 371 
the pattern.compile() factory 372 
pattern的matcher方法 373 
matcher对象 373 
应用正则表达式 375 
查询匹配结果 376 
简单查找-替换 378 
高级查找-替换 380 
原地查找-替换 382 
matcher的检索范围 384 
方法链 389 
构建扫描程序 389 
matcher的其他方法 392 
pattern的其他方法 394 
pattern的split方法,单个参数 395 
pattern的split方法,两个参数 396 
拓展示例 397 
为image tag添加宽度和高度属性 397 
对于每个matcher,使用多个pattern校验html 399 
解析csv文档 401 
java版本差异 401 
1.4.2和1.5.0之间的差异 402 
1.5.0和1.6之间的差异 403 
第9章:.net 405 
.net的正则流派 406 
对于流派的补充 409 
使用.net正则表达式 413 
正则表达式快速入门 413 
包概览 415 
核心对象概览 416 
核心对象详解 418 
创建regex对象 419 
使用regex对象 421 
使用match对象 427 
使用group对象 430 
静态“便捷”函数 431 
正则表达式缓存 432 
支持函数 432 
.net高级话题 434 
正则表达式装配件 434 
匹配嵌套结构 436 
capture对象 437 
第10章:php 439 
php的正则流派 441 
preg函数接口 443 
“pattern”参数 444 
preg函数罗列 449 
preg_match 449 
preg_match_all 453 
preg_replace 458 
preg_replace_callback 463 
preg_split 465 
preg_grep 469 
preg_quote 470 
“缺失”的preg函数 471 
preg_regex_to_pattern 472 
对未知的pattern参数进行语法检查 474 
对未知正则表达式进行语法检查 475 
递归的正则表达式 475 
匹配嵌套括号内的文本 475 
不能回溯到递归调用之内 477 
匹配一组嵌套的括号 478 
效率 478 
模式修饰符s:“研究” 478 
扩展示例 480 
用php解析csv 480 
检查tagged data的嵌套正确性 481 
索引 485