郭志敏的程序员书屋iOS专题资源__工具专题java

常用正则表达式分析(入门)

2017-02-19  本文已影响401人  机智的马里奥

写在开头

在编码过程中,正则表达式一直是经常会出现但又困扰我们的知识点,笔者就是每次遇到正则表达式就相当头痛,往往都是从网上复制一个表达式到代码里草草了事。但其实如果不真正理解正则表达式的含义,我们就无法对其进行修改来应对特殊的需求。所以本文选取几个常用的正则表达式进行分析,旨在覆盖基础的正则表达式知识,让和我一样的新手们不再惧怕那些看起来复杂的正则表达式。

定义

正则表达式是用于匹配字符串中字符组合的模式。

分析模式

首先我会把常用的正则表达式列出来,接着介绍与该表达式有关的知识点,然后结合知识点并借用例子来逐步分析该正则表达式。最后我会列出一些匹配该正则表达式的例子。为了保证阅读质量,知识点分析不会一直重复,到后来会只介绍重要或新出现的知识点。

相关连接

正式开始

用户名:

    ^[a-z0-9_-]{3,16}$

手机号:

/^1[3|4|5|7|8][0-9]{9}$/
    //手机号的正则表达式通常被分为移动,联通等几种,因为本文注重于对正则表达式的理解,所以不作分类,只对一个通用的表达式进行分析。手机号的范围以百度百科为准,即第一位是1开头,第二位有3,4,5,7,8,第三位及之后的数字都是0-9的范围

邮箱:

    /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/

十六进制数字:

    ^#?([a-f0-9]{6}|[a-f0-9]{3})$

国内电话号码(带区号):

    ^\d{3}-\d{8}|\d{4}-\d{7,8}$

URL:

    ^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$

匹配首尾空白字符(可用来删除首尾空白字符)

    ^\s*|\s*$

未涉及到的常用特殊字符(摘自MDN)

总结

至此,借用一些常见的正则表达式,已经把MDN里提到的大部分特殊字符都分析了一遍,笔者本人也是一个新手,虽然花了很多功夫试图透彻理解上述各个表达式的含义,但文章中肯定还存在理解有偏差的地方,欢迎指正。

上一篇下一篇

猜你喜欢

热点阅读