《正则表达式30分钟入门教程》 是一篇非常精彩的正则表达式入门介绍的文章,文章部分翻译自《The 30 Minute Regex Tutorial》。很早之前我就曾拜读过,印象很深刻。今天再次拜读,是想温故一下正则表达式的知识。这次读得比较细致,对正则表达式又有了更深刻的认识,现分享如下:
1. “分枝条件”一节中,作者说\(?0\d{2}\)?[- ]?\d{8}|0\d{2}[- ]?\d{8}可以 “匹配3位区号的电话号码,其中区号可以用小括号括起来,也可以不用,区号与本地号间可以用连字号或空格间隔,也可以没有间隔”。但其实这个表达式,依然可以匹配“010)12345678”这样的case。正确的表达式应该是:\(0\d{2}\)[- ]?\d{8}|0\d{2}[- ]?\d{8},应该是作者的笔误。
2. “后向引用”一节中,作者对(?:exp)的使用原因卖了一个关子,我个人理解是,使用这个是为了performance的原因,如果你对这个分组并不感兴趣,没有必要去捕获它,捕获它势必会消耗一定的时间与空间。
3. “零宽断言”一节中,作者提到:“((?<=\d)\d{3})+\b,用它对1234567890进行查找时结果是234567890” , 个人觉得这个例子举得不好,因为(\d{3})+\b同样能达到目的,这里体现不出断言的作用。我想到了一个好玩的例子:用 ab(?=cd)ef 去匹配abcdef 会怎么样呢?
4. “负向零宽断言”一节,我本来一直觉得“负向零宽断言”完全可以由“零宽断言”替代,比如\b\w*q(?!u)\w*\b 与 \b\w*q(?=[^u])\w*\b是等价的。但其实不然,我们并不能表达任何正则表达式的反向意思,比如[abcd]的反向意思是[^abcd],但abcd的反向意思是什么呢? \b((?!abc)\w)+\b 就没法用"零宽断言"来取代。
5. “平衡组/递归匹配”一节,压栈操作与出栈操作的语法与命名组的语法是一样的,是不是说,每个有名字的组都会被压栈,且组名不能以减号开始,以免与出栈操作混淆?(不懂.Net ,所以没法验证:P)
6. 最后,我想说看这样一篇文章,如果用心看并且边看边实践的话确实不止30分钟。在此推荐一个很好的网站:http://regex101.com/ 可以很方便地测试正则表达式(并且它支持Possessive数量修饰符"+")。
相关推荐
三、正则表达式的匹配原理 四、正则表达式的常用函数与工具 五、正则表达式的应用实例 六、正则表达式的优化与调试 一、正则表达式基础 重点详细内容知识点总结 1.正则表达式的定义:正则表达式(Regular ...
关于正则表达式的入门介绍PPT文档,例如: Php内置字符簇 [[:alpha:]] 任何字母 [[:digit:]] 任何数字 [[:alnum:]] 任何字母,数字 [[:space:]] 任何空白字符 [[:punct:]] 任何标点符号 [[:upper:]] 任何大写...
- 进行文本替换操作,直观感受正则表达式的替换效果。 五、进阶教程源码分析 对于标签中提到的“进阶教程源码”,意味着该工具不仅是一个简单的应用,还包含了易语言正则表达式应用的实例代码,适合学习和研究。...
- 正则表达式的作用在于匹配特定的字符组合或字符串模式,用于字符串搜索和替换等操作。 - 基本的正则表达式写法如:`\d`(匹配数字)、`[A-Z]`(匹配大写字母)等。 - 复杂的正则表达式通常需要复制或查找现成的...
通过使用正则表达式功能,可以定义复杂的查找模式,来定位和替换以空格、制表符或回车符开头并以回车符结尾的空行。文档中提到的正则表达式“^[ n”,配合不同的匹配选项,可以有效地完成这一任务。这为精确排版提供...
通过不到1小时的时间帮助学员快速熟悉Python爬虫从入门到案例实战。从零开始敲代码,手把手带领大家感受从无到有的全过程。...主要包含:http请求、正则表达式和json、开源分词工具和简单的Web服务等。
第1章 课程导学对课程整体进行介绍,让您切实感受到前端工程师学习数据结构与算法的必要性。 1-1 课程导学 试看 1-2 学习姿势 1-3 说明与承诺第2章 基础算法之“字符串类”字符串作为JS最基本的数据类型,掌握好字符...
为了让读者更好地理解和应用Python编程,书中还涉及了异常处理、文件操作、正则表达式、网络编程以及数据库交互等进阶主题。通过这些主题的介绍和实例演示,读者可以了解到Python在处理各种复杂问题时的应对策略和...
它支持复杂的查找替换操作,包括正则表达式的使用,这对于处理大量数据或者复杂的文本工作来说,是一个非常实用的功能。无论是进行代码重构、数据清洗还是文案编辑,秀丸编辑器都能提供灵活高效的解决方案。 秀丸...
- **入门篇**:包括Python环境搭建、基本语法、函数使用、正则表达式等基础知识。 - **高级篇**:涉及面向对象编程、模块管理、异常处理、数据库操作等内容。 - **实践篇**:通过GUI界面编程、网络爬虫开发、大数据...
拥有强大的搜索替换功能,支持正则表达式。 - **使用场景**:适用于任何需要文本编辑的场景,尤其适合进行代码编写、配置文件修改等。 **2. 快速入门** - **基本命令**:了解插入模式(i)、命令模式、替换模式之间...