返回介绍

第1章 什么是正则表达式

发布于 2024-01-20 21:40:46 字数 882 浏览 0 评论 0 收藏 0

正则表达式是一种特殊的字符串模式,用于匹配一组字符串。它最早出现于20世纪40年代,当时用来描述正则语言,而到20世纪70年代才真正出现在程序设计领域。据我所知,正则表达式首次出现在Ken Thompson编写的QED文本编辑器中。

“正则表达式是描述一组字符串特征的模式,用来匹配特定的字符串。”——Ken Thompson

正则表达式后来成为ed、sed 和 vi(vim) 编辑器、 grep、AWK等Unix操作系统衍生出的工具集中重要的组成部分。但这些工具实现正则表达式的方式并不完全一致。

本书使用归纳方式讲述,也就是说,会从特例讲起,最终归结到一般情况。所以我们不会先陈述观点,然后举例,而是先为大家展示示例,然后归纳出一般性结论。本书的风格是“实践出真知”。

正则表达式素以“坑多”而闻名,但是这跟你的学习方法有关。大家通常会从下面这个简单的正则表达式开始学习:

\d 

——这是匹配0到9范围内的任意数字的字符组简写式——然后过渡到更为复杂的内容,比如:

^((\d{3})|^\d{3}[.-]?)?\d{3}[.-]?\d{4}$ 

这是本章最后才会讲到的一个还算比较健壮的正则表达式,它可以匹配10位的北美电话号码。无论区号是否加括号(如果加,则左、右括号必须成对出现),数字间是否有点号(句点)或连字符,它都可以匹配。

第10章会展示一个更复杂的匹配电话号码的正则表达式,但本章你只要学会上面这个就行了。

现在还不理解也没关系,本章会将整个表达式的内容分拆开一点一点地教给你。只要你跟着这里的示例做(当然包括本书其他示例),编写正则表达式很快就可以习惯成自然。你准备好了吗?

我有时会将本书中的Unicode字符用它们的代码点(4位的十六进制数)来表示。这些代码点以U+0000的形式出现。比如,U+002E表示点号的代码点。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文