具体描述
本书综合作者自己遇到的实际问题,以及其他开发人员咨询的问题,总结出一套巧妙运用正则表达式的办法,并通过具体的例子指导读者拆解、分析问题。全书分为三部分:*部分主要讲解正则表达式的基础知识,涵盖了正则表达式中常见的各种功能和结构;第二部分主要讲解关于正则表达式的更深入的知识,详细探讨了编码问题、匹配原理、解题思路;第三部分将之前介绍的各种知识落实到常用语言.NET、Java、JavaScript、PHP、Python、Ruby、Objective-C、Golang中,在详细介绍了在这些语言中正则表达式的具体用法之外,还辨析了版本之间的细微差异。本书既可以作为专门的学习用书,也可以作为备查的参考手册。
作者简介
余晟,非正统型技术爱好者,有多年研发经验,目前在在线教育行业从事研发与架构管理的工作。在强调技术追求的同时,倡导全面、完整的技术路线和技术文化,业余写作、翻译、审校了若干技术图书。个人公众号为“余晟以为”(yurii-says)。
目录信息
第1章 字符组 .................2
第2章 量词 ...................17
第3章 括号 ...................33
第4章 断言 ...................60
第5章 匹配模式 ............83
第6章 其他 ...................95
第二部分
第7章 Unicode ...........112
第8章 匹配原理 ..........138
第9章 常见问题的解决思路 ...........................146
第三部分
第10章 .NET ..............176
第11章 Java ..............191
第12章 JavaScript .....208
第13章 PHP ...............225
第14章 Python ...........245
第15章 Ruby ..............263
第16章 Objective-C ..280
第17章 Golang...........299
第18章 Linux/UNIX ....314
附录A 常用语言中正则特性一览 ....................337
附录B 常用的正则表达式 ...............................340
附录C 常用的正则表达式工具及资源 .............356
正则表达式术语中英文对照表 ...........................363
· · · · · · (收起)
读后感
p64的表格2最后一行。如果行尾有行终止符的话,z是不能匹配行尾那个位置的。 例如: #!/usr/bin/perl use strict; use warnings; my $string = "This is a test "; if($string =~ m/testz/) { print "match! "; ...
非常好的一本讲解正则基础的书,在阅读《精通正则表达式》之前应该先好好读读这本书(恰巧作者也是该书的译者) ,全书围绕正则表达式各个特性的基础知识和正则表达式执行的基本原理进行全面的解读。与此同时对正则表达式在各个语言和平台(Python/.NET/Java/Ruby/JavaScript/PHP/...
不得不承认这是一本不错的“指引”,内容实用。 不足之处有: 1. 知识点的层次不够清晰,部分原因是排版导致的,内容被例子和图片分割得支离破碎; 2. 感觉作者有点“卖弄”文采,描述有点啰嗦,还有一些简直就是废话,阅读起来有点费劲(也有可能是自己的阅读水平及其低下导致...
P64 例4-3 提取每行的第一个单词 作者给出的表达式为 (?m)^w+ 这里忽略了行首不是单词的情况, 比如 空格开头,或其他特殊字符。 所以我觉得如果只想匹配每行的单词,我给出的表达式为 (?m)^[^w]*(w+) 不确定这样写,是否是作者想表达的意图。
非常好的一本讲解正则基础的书,在阅读《精通正则表达式》之前应该先好好读读这本书(恰巧作者也是该书的译者) ,全书围绕正则表达式各个特性的基础知识和正则表达式执行的基本原理进行全面的解读。与此同时对正则表达式在各个语言和平台(Python/.NET/Java/Ruby/JavaScript/PHP/...
用户评价
最近工作上遇到了很多需要处理非结构化文本数据的任务,我之前也接触过一些正则表达式的皮毛,但总感觉不够深入,很多时候只能生搬硬套,效率不高。所以,《正则指引(第2版)》这个书名一出现,我就觉得它可能正是我需要的。我特别想知道,这本书会如何系统地讲解正则表达式的语法和概念,会不会像一本字典一样,把各种元字符、量词、分组、选择等都一一列举,并配有清晰的解释和示例?我更关心的是,它会如何教我构建出能够解决实际问题的正则表达式。比如,如何从一大段HTML代码中提取特定的信息,或者如何验证用户输入的邮箱地址、电话号码是否符合规范。这本书会不会提供一些通用的解题思路和方法论,让我能够举一反三?我也希望它能介绍一些常见的陷阱和误区,避免我走弯路,或者写出效率低下、容易出错的正则。如果它能包含一些关于正则表达式性能优化的讨论,以及如何在不同平台或语言环境下使用时需要注意的事项,那就更好了。毕竟,正则表达式的威力在于它的灵活性,但也可能因为不当使用而带来性能问题。
我一直对软件开发中的高效文本处理技术抱有浓厚的兴趣,而正则表达式无疑是其中最强大、最常用的工具之一。《正则指引(第2版)》这个书名立刻吸引了我,因为我相信它能够帮助我深化对这一技术的理解。我非常期待书中能够提供一个全面而系统的正则表达式学习路径,从最基础的语法规则,到各种高级特性,例如环视(lookahead/lookbehind)、原子组、递归匹配等等。我希望这本书能够深入浅出地讲解这些概念,并辅以大量的实际应用案例,让我能够理解它们在解决复杂文本匹配问题时的强大威力。我尤其关注书中是否会讲解一些在实际开发中非常常见的场景,比如数据清洗、日志分析、模式验证、文本搜索与替换等,并展示如何运用正则表达式来高效地解决这些问题。此外,我希望书中也能提及一些关于正则表达式性能优化的讨论,以及如何避免常见的性能陷阱,例如写出效率低下的灾难性回溯。如果书中能包含一些关于不同正则表达式引擎(如PCRE、Python的re模块等)的特性和兼容性方面的介绍,并提供一些调试和测试正则表达式的实用技巧,那就更完美了。
我一直对文本处理和数据提取非常感兴趣,尤其是那些能够帮助我自动化处理大量文本信息的技术。这本书的名字《正则指引(第2版)》瞬间吸引了我,因为“正则”这个词本身就意味着强大而精确的模式匹配能力。我尤其好奇它在现代编程语言中的具体实现和最佳实践,比如在Python、JavaScript或者Java这样的语言里,正则表达式的性能优化技巧,以及如何处理一些复杂的、嵌套型的匹配场景。我希望这本书能深入浅出地讲解正则表达式的方方面面,从最基础的字符匹配、量词、分组,到更高级的断言、环视,甚至是如何编写更具可读性和可维护性的正则表达式,毕竟,一个复杂的正则表达式如果没有良好的结构,后期维护起来简直是灾难。我还想了解一些实际应用案例,比如网页爬虫的数据解析、日志文件分析、配置文件的验证等,看看正则表达式是如何在这些场景下大显身手的。如果这本书能提供一些调试工具和技巧,那就更完美了,毕竟写正则和调试正则常常是同样消耗时间和精力的过程。我期待这本书能够让我对正则表达式有一个质的提升,能够自信地应对各种文本处理挑战。
作为一个对计算机科学基础理论有浓厚兴趣的学习者,《正则指引(第2版)》这个书名让我眼前一亮。我一直认为,正则表达式虽然在表面上看是一种文本匹配工具,但其背后蕴含着形式语言和自动机理论的精髓。我希望这本书能够不仅仅停留在语法层面的介绍,更能深入探讨正则表达式的理论基础,比如它与有限自动机之间的等价关系,以及它在编译原理、文本编辑器、搜索引擎等领域的深层应用。我特别想知道,书中会不会介绍如何将复杂的正则表达式转化为DFA或NFA,以及这种转换在理解其工作原理和性能方面的重要性。此外,对于正则表达式的各种变体,比如PCRE(Perl Compatible Regular Expressions)或者POSIX正则表达式,书中是否会进行详细的比较和阐述,并说明它们各自的优缺点和适用场景?我还会关注书中是否有关于正则表达式引擎的实现原理的介绍,比如它是如何解析和匹配文本的,以及可能存在的性能瓶颈和优化方向。如果书中能提及一些更高级的主题,例如正则表达式的语法扩展,或者与其他模式匹配技术的比较,那就更具学术价值了。
最近迷上了写一些自动化脚本来处理日常工作中的重复性任务,特别是那些涉及到从大量的日志文件或者配置文件中提取关键信息的部分。这时候,一个强大而灵活的文本匹配工具就显得尤为重要,《正则指引(第2版)》这个名字正好点明了我的需求。我希望这本书能非常详细地讲解正则表达式的每一个组成部分,从最基本的字符、转义符、点号(.),到各种量词(*、+、?、{}),再到分组(())、选择符(|)、分组捕获和非捕获。我尤其希望它能用大量生动、贴近实际的例子来演示这些概念,而不是干巴巴的理论。比如,如何匹配一个IP地址,如何提取URL中的域名,或者如何找出文件中所有包含特定错误代码的行。我还会关注书中是否有关于如何构建能够处理各种边界情况和异常数据的正则表达式的技巧。此外,书中是否会提供一些在实际编程中常用的正则表达式函数或方法,以及如何将它们集成到我的脚本中?例如,如何在Python中使用re模块,或者在Shell脚本中利用grep命令。如果能有关于如何编写可读性强、易于调试的正则表达式的指导,那真是太棒了。
写得不错,就是笔误和印刷错误多了点
写得不错,就是笔误和印刷错误多了点
好书
好书
翻了前面的原理篇和后面的Java篇,之后看看openjdk里正则的单元测试 http://hg.openjdk.java.net/jdk9/jdk9/jdk/file/65464a307408/test/java/util/regex