分享

正则表达式之基本概念

 遥望山川溪流 2016-12-20

在我们写页面时,往往需要对表单的数据比如账号、身份证号等进行验证,而最有效的、用的最多的便是使用正则表达式来验证。那什么是正则表达式呢?

正则表达式(Regular Expression)是用于描述一组字符串特征的模式,用来匹配特定的字符串。它的应用非常广泛,特别是在字符串处理方面。其常见的应用如下:

  1. 验证字符串,即

    验证给定的字符串或子字符串是否符合指定的特征,

    例如,验证是否是合法的邮件地址、验证是否是合法的HTTP地址等等。
  2. 查找字符串,从给定的文本当中

    查找符合指定特征

    的字符串,这样比查找固定字符串更加灵活。
  3. 替换字符串,即查找到符合某特征的字符串之后将之替换。
  4. 提取字符串,即从给定的字符串中提取符合指定特征的子字符串。

第一部分:正则表达式之工具

正所谓工欲善其事必先利其器! 所以我们需要知道下面几个主要的工具:

  • http://www./这个网站中,我们可以在线测试正则表达式。
  • http:///这个网站更为推荐,它自身还包括了一个实例使我们直接测试。

第二部分:正则表达式之元字符

正则表达式中元字符恐怕是我们听得最多的了。元字符(Metacharacter)是一类非常特殊的字符,它能够匹配一个位置或者字符集合中的一个字符。如.、\w等都是元字符。

刚刚说到,元字符既可以匹配位置,也可以匹配字符,那么我们就可以通过此来将元字符分为匹配位置的元字符匹配字符的元字符

A 匹配位置的元字符---^、$、\b

匹配位置的元字符只有^(脱字符号)、$(美元符号)和\b这三个字符。分别匹配行的开始、行的结尾以及单词的开始或结尾。它们匹配的都只是位置。

1.^匹配行的开始位置

^zzw匹配的是以'zzw'为行开头的'zzw'(注意:我这里想要表达的是:尽管加了一个^,它匹配的仍是字符串,而不是一整行!) ,如果zzw不是作为行开头的字符串,则它不会被匹配。

正则表达式之基本概念

2.$匹配行的结尾位置

如zzw$匹配的是以'zzw'为行结尾的'zzw'(同样,这里$只是匹配的一个位置,那个位置是零宽度,而不是一整行),如果zzw不是作为行的结尾,那么它不会被匹配。

正则表达式之基本概念

于是结合^和$我们就不难猜测^zzw$匹配的是某行中只有zzw这个字符串了。

正则表达式之基本概念

而^$匹配的则是一个空行,这个空行中不包含任何字符串。

3. \b匹配单词的开始或结束

如 \bzzw匹配的是zzw之前是空格符号、标点符号或换行符号的zzw(注意:但\b匹配的仅是一个零宽度的位置,而不会匹配空格、标点符号或换行符号)。

而zzw\b匹配的是zzw之后是空格符号、标点符号或换行符号的zzw(同样,\b匹配的是一个零宽度的位置)。

显然 \bzzw\b匹配的就是zzw的前后必须是空格符号、标点符号或换行符号的zzw。

正则表达式之基本概念

B 匹配字符的元字符---. 、\w、\W、\s、\S、\d、\D

即匹配字符的元字符共有七个。

其中.(点号)表示匹配除换行符之外的任意字符;

\w 匹配单词字符(不仅仅是字母,还有下划线、数字汉字);\W匹配任意的非单词字符(注意,与\w刚好相反)

\s匹配的是任意的空白字符(如空格、制表符、换行符、中文全角空格等);

\S匹配的是任意的非空白字符(注意:刚好和\s相反);

\d匹配任意的数字;

\D匹配任意的非数字字符(注意:刚好和\d相反)。

例子如下所示:

正则表达式之基本概念

上面的四个例子从左到右依次表示:

  • ^.$表示匹配一行中的唯一一个任意的非换行符的字符
  • \ba\w\w\w\w\w\w\w\w\w\b表示匹配以字母a开始的后面有9个字母字符的单词。 (

    注意:其中的a并不是元字符,就是一个普通的字符,我们称之为字符串字面值(string literal)-所谓字符串字面值,就是字面上看起来是什么就是什么)

  • \

    b\w\w\w\d\d\d\d\D\b表示匹配以3个字母字符开始后面紧跟着四个数字字符且最后一个不是数字字符的单词。

第三部分:正则表达式之文字匹配

这一部分我们将通过字符类、字符转义、反义这几个部分来学习。

A、字符类

字符类是正则表达式中的“迷你”语言,可以在中定义。

最简单的字符类可以由和几个简单的字母组成。比如[aeiou]可以匹配aeiou五个字母中的任意一个。[0123456]可以匹配0123456这七个数字中的任意一个。可以匹配到HTML标记中的

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多