• 正则表达式学习方法及笔记


        最近参加了百度ife的前端培训,在完成task0002的过程中要求学会正则表达式,曾经在javascript的教学图书中有看过正则表达式,但都讲的不够系统,自己也不够重视,所以就几乎是正则表达式零基础。于是花了不到一个晚上的时间把《入门正则表达式》看完了,一百多页,比网上的大多数教程系统,入门足矣。

        首先推荐两个在线测试正则的网站,边学边测试反复实践当然学的更快了。

         http://regexpal.com/

         http://regexr.com/

        个人更喜欢用第二个,功能更加齐全,而且界面更美观一些。

         MDN正则表达式  这个这教程结合书使用效果更加。

     以下是我在Evernote上整理的读书笔记,由于是按自己学习的状态整理所以有些简单不系统,更加建议看书

         元字符(metacharacter)是在正则表达式中有特殊含义的字符,也是保留字符。[0-9]这种形式的正则表达式称作字符组(character class)。

         d可以像[0-9]一样匹配任意阿拉伯数字这种正则表达式叫做字符组简写式(character shorthand),也叫转义字符(character escape)。

         使用D匹配任何一个非数字字符,会匹配空格,字母和标点符号。

         .是一个通配符,可以匹配任意字符(但某些情况下不能匹配行起始符)。

         脱字符^匹配行起始位置

         美元$匹配行结束位置
         竖线符|表示选择,也就是从多个可选项中选择一个。
         w只匹配字母,数字,下划线
         x(?=y)  匹配’x’仅仅当’x’后面跟着y 正向肯定查找
         x(?!y)  匹配’x’ 仅仅当’x’后面不跟着’y’,这个叫正向否定查找
     
    使用量词
        {3}花括号中的数字表示带查找的数字出现的次数。包含数字的花括号是一种量词(quantifier)。花花括号本身用做元字符。
          ?也是一种量词表示连字符是可选的,连字符可以不出现或只出现一次。还有其他的量词,例如加号(+)表示“一个或多个”,星号(*)表示“零个或多个”。
          懒惰量词在普通量词后面加一个?可以使它匹配最少
          占有量词在普通量词后面加一个+
     
    边界
          就像^和$一样,是一个零宽度断言,表面上它会匹配空格或者是行起始,而实际上它匹配的是不存在的东西。
          B匹配非单词边界。
         
    选择,分组和后向引用
          举例:先将一个d放在一对圆括号中,这样就将它放入了一个分组中,后面可以用1来对捕获的内容进行后向引用。
          (d)d1可以匹配707等前后两个数相等的三位数。
          当一模式的全部或则部分内容由一对括号分组时,它就对内容进行捕获并临时存入内存中。可以通过后向引用重用捕获的内容,形式为:1 或 $1。
          (?:x)    匹配’x’但是不记住匹配项。这种被叫做非捕获括号。匹配到的自字符串不能通过数组的[1],...,[n]进行访问。
  • 相关阅读:
    排查线上问题常用的几个Linux命令
    OAuth2简易实战(一)-四种模式
    程序员必备的网站推荐
    C++ sizeof
    C++ 求余运算符
    C++ mutable(可变的)
    C++ const_cast用法
    C++常变量和文字常量
    C++中 <iso646.h>头文件
    java-网络编程-使用URLDecoder和URLEncoder
  • 原文地址:https://www.cnblogs.com/licop/p/4457152.html
Copyright © 2020-2023  润新知