学会这二十个正则表达式,能让你少些1000行代码!

正则表达式,是一个强大且高效的文本处理工具。通常情况下,通过一段表达准确的表达式,能够非常简短、快速的实现复杂业务逻辑。

因此,正则表达式通常是一个成熟开发人员的标配,可以辅助实现开发效率的极强提升。

在需要实现校验字段、字符串等内容时,通常就可以通过正则表达式实现:

下面是技匠整理的,经常使用到的20个正则表达式。

1校验密码强度

密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间。

2校验中文

字符串仅能是中文。

3由数字、26个英文字母或下划线组成的字符串

4校验E-Mail 地址

同密码一样,下面是E-mail地址合规性的正则检查语句。

5校验身份证号码

下面是身份证号码的正则校验。15 或 18位。

6校验日期

“yyyy-mm-dd“ 格式的日期校验,已考虑平闰年。

7校验金额

金额校验,精确到2位小数。

8校验手机号

下面是国内 13、15、18开头的手机号正则表达式。(可根据目前国内收集号扩展前两位开头号码)

9判断IE的版本

IE目前还没被完全取代,很多页面还是需要做版本兼容,下面是IE版本检查的表达式。

10校验IP-v4地址

IP4 正则语句。

11校验IP-v6地址

IP6 正则语句。

12检查URL的前缀

应用开发中很多时候需要区分请求是HTTPS还是HTTP,通过下面的表达式可以取出一个url的前缀然后再逻辑判断。

13提取URL链接

下面的这个表达式可以筛选出一段文本中的URL。

14文件路径及扩展名校验

验证windows下文件路径和扩展名(下面的例子中为.txt文件)

15提取Color Hex Codes

有时需要抽取网页中的颜色代码,可以使用下面的表达式。

16提取网页图片

假若你想提取网页中所有图片信息,可以利用下面的表达式。

17提取页面超链接

提取html中的超链接。

18查找CSS属性

通过下面的表达式,可以搜索到相匹配的CSS属性。

19抽取注释

如果你需要移除HMTL中的注释,可以使用如下的表达式。

20匹配HTML标签

通过下面的表达式可以匹配出HTML中的标签属性。

正则表达式的相关语法

下面是我找到的一张非常不错的正则表达式 Cheat Sheet,可以用来快速查找相关语法。

学习正则表达式

我在网上看到了一篇相当不错的正则表达式快速学习指南,有兴趣继续深入学习的同学可以参考。

作者:技匠 来源:http://www.jianshu.com/p/e7bb97218946


原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2017-09-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏极客猴

常用Python标准库

众所周知,Python有庞大的库资源,有官方标准库以及第三方的扩展库。每个库都一把利器,能帮助我们快速处理某方面的问题。作为一名python的初学者,当把基本的...

36130
来自专栏AI派

真是绝了!史上最详细的Jupyter Notebook入门教程

Jupyter Notebook 是一个在浏览器中使用的交互式的笔记本,可以实现将代码、文字完美结合起来,它的受众群体大多数是一些从事数据科学领域相关(机器学习...

1.6K80
来自专栏WeTest质量开放平台团队的专栏

Unity手游崩溃异常如何捕获--C#及JVM捕获

C#脚本未捕获的异常,与Android和Native未捕获异常很大的区别是,未捕获异常不会照成引用的闪退。所以,C#脚本的异常危害相对较小,但是同样更加容易存在...

37540
来自专栏CSDN技术头条

QtQuick 系列教程之 QML 与 C++ 交互

QML 作为一种灵活高效的界面开发语言已经越来越得到业界的认可。QML 负责界面,C++ 负责逻辑,这也是 Qt 官方推荐的开发方式。那么 QML 与 C++ ...

30730
来自专栏java一日一条

编写一个非常简单的 JavaScript 编辑器

当然,我们已经有可以使用的很好的Web编辑器:你只需下载,并插入页面即可。我以前习惯于使用CodeMirror和ACE。例如,我为CodeMirror写了一个插...

15020
来自专栏技术博客

编写高质量代码改善C#程序的157个建议[用抛异常替代返回错误、不要在不恰当的场合下引发异常、重新引发异常时使用inner Exception]

  自从.NET出现后,关于CLR异常机制的讨论就几乎从未停止过。迄今为止,CLR异常机制让人关注最多的一点就是“效率”问题。其实,这里存在认识上的误区,因为正...

14320
来自专栏Ldpe2G的个人博客

ScalaMP ---- 模仿 OpenMp 的一个简单并行计算框架

12230
来自专栏take time, save time

初级程序员面试不靠谱指南(四)

三、改变出生的static和extern 1.程序是怎样炼成的?IDE的发展带来的一个好处就是在写程序更多的可以关注在写这件事情上了,比如在vc里面,当你酣畅淋...

28950
来自专栏PPV课数据科学社区

适用于 PHP 开发人员的 Python 基础知识

您是一名 PHP 开发人员。您在过去 五年(或更长时间)中可能一直都编写应用程序,您已经将许多想像变成了可能 — 电子商务系统、简单内容管理系统、Twitte...

424150
来自专栏take time, save time

[细节决定B度]之回首一瞥cout<<"Hello,world"<<endl;

     都说细节决定成败,我觉得的编程来说,特别是面试的时候细节最能决定的是关键时候你能装的程度,所以我想有个系列记录我遇到的各种我遇到的细节问题,以备不时之...

37270

扫码关注云+社区

领取腾讯云代金券