浅说正则——会了就不会忘

闲来无事,看了看新浪最近的面试题,其中关于正则的题目,让自己意识到了这一块的薄弱。

闲来无事,搜集了很多资料(ps:三中全会这几天,用google特慢,不得以用bd,不说了,你懂得,真实屌丝的百科全书,建议能用google就google),研究了一下正则。有一些小感触,正则没有你想象中那么难,正则不是那么简单。

记得有位贵人告诉我,正则会了就不会忘。当时将信将疑。

怎么看待正则?难,不难,很容易?对于正则,我想说:会了就不会忘。

很多同行,包括之前的自己。对于正则都是拿来主义,用到的时候,一搜就有。大体上能看懂,深究有不明白。就是那句话恰到好处——最熟悉的陌生人。

关于正则的基础知识,就没必要赘述,到处都是。

这里主要想说的是电子邮箱地址的正则匹配。

下面的写法最常见:/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/ ;

还有诸如:/^(\w)+(.\w+)*@(\w)+((.\w{2,3}){1,3})$/;

/^(\w)+(.\w+)*@(\w)+((.\w+)+)$/;

(\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+);)

这些都只能满足普通的要求,专门对比了一下几个门户的邮箱地址注册规则,见下图(腾讯的不太友好,输入后才有规则提示,没有拿来):

差别真的很大,网上的很多也不满足如写的域名规则:

尝试着写的一个电子邮件验证,希望大家拍砖:$preg = “/^[a-zA-Z0-9]+(.\w+)*[^_]@[^-][a-zA-Z0-9-]+[^-].[^-][a-zA-Z0-9-]+[^-]$/”

做为一名工程师,要得就是专业,而正则就是专业性的体现。多花一点时间,深入钻研, 会了就不会忘。

Original: https://www.cnblogs.com/james1207/p/3424255.html
Author: Class Xman
Title: 浅说正则——会了就不会忘

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/552085/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 全新升级的AOP框架Dora.Interception[汇总,共6篇]

    多年之前利用IL Emit写了一个名为Dora.Interception(github地址,觉得不错不妨给一颗星)的AOP框架。前几天利用Roslyn的Source Generat…

    技术杂谈 2023年5月31日
    0103
  • vi 常用命令

    1)移动光标h :光标左移一个字符j :光标上移一个字符k :光标下移一个字符l :光标右移一个字符0 :光标移至行首$ :光标移至行尾H :光标移至屏幕首行M :光标移至屏幕中间…

    技术杂谈 2023年6月1日
    0101
  • YUV / RGB 格式及快速转换算法

    1 前言 自然界的颜色千变万化,为了给颜色一个量化的衡量标准,就需要建立色彩空间模型来描述各种各样的颜色,由于人对色彩的感知是一个复杂的生理和心理联合作用的过程,所以在不同的应用领…

    技术杂谈 2023年5月31日
    097
  • Docker 部署 Kibana

    Docker 部署 Kibana 本篇主要介绍 使用 Docker 部署 kibana 用于操作 Elasticsearch 使用. 1. 前置准备 1.1 Elasticsear…

    技术杂谈 2023年7月10日
    066
  • JAVA常见基础知识点

    JAVA常见基础知识点 一、注释 Java中有三种注释,分别是单行注释、多行注释、文档注释。单行注释:注释某一行代码。使用//多行注释:注释某一段代码。使用/ … /文…

    技术杂谈 2023年6月21日
    0111
  • Vue 项目中遇到的跨域问题及解决方法

    问题描述 前端 vue 框架,跨域问题后台加这段代码header(“Access-Control-Allow-Origin: *”);加了之后报这个错: T…

    技术杂谈 2023年6月1日
    0119
  • 【转】iOS中的md5,crc32校验

    在使用URLSession下载一个文件过程中,如何校验呢? md5算法在ios中实现 我们在下载后会拿到一个NSData. const char str = (const char…

    技术杂谈 2023年6月1日
    0119
  • Postfix邮件发送小问题总结

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/kerrycode/p/15321413.htmlAut…

    技术杂谈 2023年5月31日
    089
  • webrtc:信令服务器的另一种实现方式-无需掌握全部的socket.io

    我们知道,基于WEBRTC实现的多对多实时音视频互动通信就必须需要搭建信令服务器作为信令转发操作。那么我首先了解一下,什么是webrtc信令服务器? 在webrtc的规范中,其实是…

    技术杂谈 2023年5月31日
    0103
  • activiti 工作流动态设置指定节点任务人、责任人、组的实现方式

    首先给大家看一下我的流程图: 流程文件leaveBill.bpmn /更新请假状态,启动流程实例,让启动的流程实例关联业务*/@Overridepublic void saveSt…

    技术杂谈 2023年5月31日
    096
  • 读配置、讲原理、看面试真题,我只能帮你到这了。。。

    当我在写一上来就主从、集群、哨兵,这谁受得了的时候,好多小伙伴就迫不及待的留言想看这些模式了,今天我们就从配置文件、设计原理、面试真题三个方面来聊一聊 Redis 的主从复制。 在…

    技术杂谈 2023年7月11日
    081
  • Delphi 如何让程序获取权限结束指定进程?

    补充: 还有这个`不知道哪个能用的~ unit Tlhelp323; interface usesWindows,SysUtils,Tlhelp32; function KillT…

    技术杂谈 2023年5月31日
    0103
  • 我的作品

    ESFramework 是一套性能卓越、稳定可靠、强大易用的跨平台通信框架,支持应用服务器集群。 其内置了消息的收发与自定义处理(支持同步/异步模型)、消息广播、P2P通道、文件传…

    技术杂谈 2023年6月1日
    095
  • 抽象类和接口

    Loading Tips: 除非必须使用,否则不要用接口 和 抽象类(大多时候,常规类就可以解决问题) 在合理的范围内尽可能抽象,相比于抽象类,我们 更倾向于接口的使用 poste…

    技术杂谈 2023年7月25日
    0108
  • Laravel新增路由文件配置

    简介: 如下,以6.0版本框架,新建一个路由文件,并且使用laravel的中间件,实现简单的登录验证。 生成路由的流程: 1:创建控制器文件:php artisan make:co…

    技术杂谈 2023年7月11日
    0107
  • 零成本搭建个人博客搭建篇

    为什么要搭建个人博客 尽管已经有很多成型的在线博客平台供大家使用(csdn,博客园,掘金等),但是它们都有一些很明显的弊端,例如账号以及博客内容受到监管,所有权不属于作者本人,对于…

    技术杂谈 2023年6月21日
    0106
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球