返回介绍

7.5 写正则的诀窍和常用正则

发布于 2025-01-30 22:11:33 字数 1825 浏览 0 评论 0 收藏 0

写正则的诀窍

女孩和男孩恋爱时的诀窍通常是:测试你是不是对我好一点,如果是的,咱们的关系就更好一点。

而正则的诀窍和恋爱的诀窍基本一致:写一点、测一点。

因为,我们需要不断的正则,用 preg_match 对比是不是能匹配成功。成功了,再写后面的一点。直到写完,全部匹配成功为止!

例如,我要写一个邮箱的正则。我先要做的事情,将常用的邮箱格式全部列出来。例如:

liwenkai@phpxy.com
liwenkai@corp.baidu.cm
liwenkai@126.com
l_w_k@xxx.com
12345@qq.com

常用的格式主要有这样一些。那我们就可以来分析:

  1. 先匹配 @之前的字符 \w+(因为是 0-9A-Za-z_)
  2. 第二个跟一个 @符
  3. 第三个再写上[a-zA-Z0-9-]+ 因为 qq 和 126 这些主域名是不能有下划线的
  4. corp.baidu. 或者是 126. 通常邮箱后缀都是这样的。所以我们可以写成:([a-zA-Z0-9-]+.){1,2}
  5. 上面的是将.转义,让它是本身的意思。括号重复的区间最少一次,最多两次。
  6. 后面接下 com|cn|org|gov.cn|net|edu.cn 等就可以了

因此,我们的正则表达示在我使用:

/\w+@([a-zA-Z0-9-]+.){1,2}(com|cn|org|gov.cn|net|edu.cn)/

邮箱的正则就被我写成功了。

常用正则函数

我们常用的正则函数有:函数名功能
preg_filter执行一个正则表达式搜索和替换
preg_grep返回匹配模式的数组条目
preg_match执行一个正则表达式匹配
preg_match_all执行一个全局正则表达式匹配
preg_replace_callback_array传入数组,执行一个正则表达式搜索和替换使用回调
preg_replace_callback执行一个正则表达式搜索并且使用一个回调进行替换
preg_replace执行一个正则表达式的搜索和替换
preg_split通过一个正则表达式分隔字符串

大家针对这这些函数,对着手册用一下。有问题或遇到问题可以来我们的官网提问。

正则关于面试常遇到的问题

面试中经常考到的几个正则达达示是:

  1. 匹配邮箱
  2. 匹配手机号
  3. 匹配一个网址
  4. 用正则匹配某个格式,取出某个个例
  5. 写一个采集器
    其他....

面试的第 4 题和第 5 题我对大家不担心,因为只要大家认真学习了我给的前五节的内容。第 4,5 题推理就行。

因为,通常在技术答题面试环节,是时候准许查手机的!

常用正则表达示

下面的是快速查找的正则表达示,大家一定得知道具体意思。
需要的时候直接复制即可:

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

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

发布评论

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