1. 正则表达式概述
正则表达式,其实是一个「规则表达式」,我们通过设定的规则,可以从某个字符串中匹配出想要的数据。
在 Wikipedia 上,我们看到「正则表达式」的说明如下:
正则表达式(英语:Regular Expression,常简写为regex、regexp或RE),又称正则表示式、正则表示法、规则表达式、常规表示法,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。
许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在 Perl 中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由 Unix 中的工具软件(例如 sed 和 grep)普及开的。
而更简单去理解的话,其实就是「拿个模子,去套出你想要的数据」。
另外,正则表达式是编程中不可或缺的技术,尤其是现在大家喜欢用 Python 来实现网络爬虫程序,更是能体会到它的强大和魅力。
2. 常见案例(手机号、邮箱校验)
好比,你登录某网站时,账户可以是邮箱,也可以是手机号。此时,系统总会先去校验你输入的邮箱或手机号的格式是否正确,再去判断系统中是否有这个用户。
如果你输入的格式不对,系统就会进行提示,那它是怎么来匹配并验证你输入的信息呢?
比如,手机号的格式匹配,包含了中国电信、中国联通、中国移动、中国广电、上网卡、虚拟运营商等等号段,我们的正则表达式可以这样写:
/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
还有,邮箱的格式匹配,就简单些:
/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
现在看不懂,也没有关系,再复杂的内容,我们后面拆开一个个详细给大家介绍清楚,马上就能看懂了,非常简单的。