美文网首页
简单的正则表达式梳理 2018-07-14

简单的正则表达式梳理 2018-07-14

作者: 咩_先生O_0 | 来源:发表于2018-07-14 19:48 被阅读0次

在正则表达式中,如果直接给出字符,就是精确匹配。/1w!/


用\d可以匹配一个数字,\w可以匹配一个字母或数字

    所以:

            '00\d'可以匹配'007',但无法匹配'00A';

            '\d\d\d'可以匹配'010';

            '\w\w'可以匹配'js';


    可以匹配任意字符

    所以:

            'js.'可以匹配'jsp'、'jss'、'js!'等


要匹配变长的字符,在正则表达式中,用*表示任意个字符(包括0个),用+表示至少一个字符,用?表示0个或1个字符,用{n}表示n个字符,用{n,m}表示n-m个字符:

    所以:

            \d{3}\s+\d{3,8}表示:

            \d{3}表示匹配3个数字,例如'010';

            \s可以匹配一个空格(也包括Tab等空白符),所以\s+表示至少有一个空格,例如匹配' ','\t\t'等;

            \d{3,8}表示3-8个数字,例如'1234567'


特殊字符,在正则表达式中,要用'\'转义

     所以:

            \d{3}\-\d{3,8}  匹配  '010-12345'


要做更精确地匹配,可以用[]表示范围

    例如:

            [0-9a-zA-Z\_]可以匹配一个数字、字母或者下划线;

            [0-9a-zA-Z\_]+可以匹配至少由一个数字、字母或者下划线组成的字符串,比如'a100','0_Z','js2015'等等;

            [a-zA-Z\_\$][0-9a-zA-Z\_\$]*可以匹配由字母或下划线、$开头,后接任意个由一个数字、字母或者下划线、$组成的字符串,也就是JavaScript允许的变量名;

            [a-zA-Z\_\$][0-9a-zA-Z\_\$]{0, 19}更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)


A|B可以匹配A或B,所以(J|j)ava(S|s)cript可以匹配'JavaScript'、'Javascript'、'javaScript'或者'javascript'


^表示行的开头,^\d表示必须以数字开头


$表示行的结束,\d$表示必须以数字结束


除了简单地判断是否匹配之外,正则表达式还有提取子串的强大功能。用()表示的就是要提取的分组(Group)

    例如:

            ^(\d{3})-(\d{3,8})$分别定义了两个组,可以直接从匹配的字符串中提取出区号和本地号码:

            var  re =/^(\d{3})-(\d{3,8})$/;

                    re.exec('010-12345');// ['010-12345', '010', '12345']

                    re.exec('010 12345');// null


贪婪匹配

        需要特别指出的是,正则匹配默认是贪婪匹配,也就是匹配尽可能多的字符。

非贪婪匹配(也就是尽可能少匹配)

        加个?就可以让\d+采用非贪婪匹配


全局搜索

最常用的是g,表示全局匹配

    例如:

            /test/g

        注:全局匹配类似搜索,因此不能使用/^...$/,那样只会最多匹配一次


正则表达式还可以指定i标志,表示忽略大小写,m标志,表示执行多行匹配


如果你经常遇到正则表达式的问题,你可能需要一本正则表达式的参考书。

\033[##m

相关文章

  • 简单的正则表达式梳理 2018-07-14

    在正则表达式中,如果直接给出字符,就是精确匹配。/1w!/ 用\d可以匹配一个数字,\w可以匹配一个字母或数字 所...

  • 2018-07-15

    2018-07-14 孟傑萨霸 2018-07-14 01:24 · 字数 137 · 阅读 22 · 日记本 1...

  • 简单梳理

    转眼一学期的工作匆匆而过,终于能静下心来慢慢梳理,觉得这也很幸福。师训工作看似和学校切身发展不很密切,但我...

  • 简单梳理

    1:想要以此赚钱,自由的、建立影响力,做有深度的相关内容;我知道自己有这个能力,但现阶段我不了解自己的水平所以恐慌...

  • 简单梳理

    也许是真的老了,今天看文涛也老了很多,但是他似乎还在努力的寻求内心的需要。最近看他似乎看了不少心理学的书,自我疗愈...

  • 读懂正则表达式就这么简单

    读懂正则表达式就这么简单 - Zery - 博客园 读懂正则表达式就这么简单 一 前言 对于正则表达式,相信很多人...

  • JavaScript 正则表达式实用指南

    简评:字符串操作中正则表达式是一个非常强大的工具,本文梳理了正则表达式中几个实用语法。 什么时候正则表达式 正则表...

  • 推送的简单梳理

    最近推送一直有一些问题,app icon的badge显示问题,推送接收处理问题等,发现自己一直不太清楚整个流程,于...

  • 【Python-02】正则表达式-20170708

    正则表达式 1.正则表达式的概念 正则表达式是可以匹配文本片段的模式。 最简单的正则表达式就是普通字符串,可以匹配...

  • Java正则表达式笔记总结

    一 简介 最近做一个web探测的项目,在项目中多处用到java正则表达式,今天将回顾的正则表达式做一个梳理,本文属...

网友评论

      本文标题:简单的正则表达式梳理 2018-07-14

      本文链接:https://www.haomeiwen.com/subject/wenypftx.html