RegExp--笔记

来源:互联网 发布:h5页面源码下载 编辑:程序博客网 时间:2024/06/05 15:22
1.普通字符 
        数字、字母、下划线、中文。。。
        \n          换行符
        \t          制表符(也就是tab键)
        \\          表示"\"本身
    \^,\$,\{,\}...  匹配字符本身


2.标准字符
        \d      0~9中的任意一个数字
        \D      非数字
        \w      任意一个字母、数字、下划线、中文
        \W      除了以上之外
        \s      空格符、制表符、换行符等空白符中的任意一个
        \S      除了空白符之外
        .       匹配任意一个字符,所有的都匹配
3.自定义字符集
        [] : 表示自定义字符集
            ex: [abd]  表示匹配abd中的任意一个字符,他们是“或”的关系
        ^ : 在自定义字符集中是取反的意思
            ex: [^abd] 表示匹配除了abd的任意字符,包括空白字符
        - :表示重什么到什么一般 0-9 a-z A-Z
            ex: [a-z]  表示匹配26个小写字母中的任意一个
                [^0-9]  表示除了0-9数字之外的任何
4:修改匹配次数
        {}   : 表示修改匹配的次数
        {n}  : 表达式重读n次
        {m,n}: 表达式至少重复m次,最多n次
                ex: \d{m,n} 数字最少m个,最多n个
        {m,} : 表达式至少重复m次,多了不限
        ?    :  匹配0次或1次,相当于{0,1}
        +    :  表达式至少出现1次,相当于{1,}
        *    :   表达式出现任意次,包括0,相当于{0,}
5:模式
        贪婪模式:默认匹配符合表达式的最长的字符
        非贪婪模式:反之
            ex:在匹配次数的后面加上"?"就可以取消贪婪模式
            \d{2,4}?    以最少次数2匹配
            \d+?        以最少次数1匹配
            \d*?        以最少次数0匹配
            a\d{2,4}?b  这种表达式在匹配的时候要先匹配整个表达式
6:匹配模式
        ignorecase  忽略大小写模式
            ex: (?i) [a-z] (?-i)  
                ?i 开启忽略大小写
                ?-i 关闭忽略大小写
        singleline  单行模式    将所有的字符串当做一行字符串,只有一个开头和结尾
        multiline   多行模式    每行都有开头和结尾
7:字符边界
        ^ : 匹配字符串开始的位置,与自定义的"^"不同
            ex: ^ab 匹配以ab开头
        $ : 匹配字符串的结尾 -- 记住默认是单行模式只有一个结尾
            ex: ab$ 以ab结尾,并匹配ab
        \b: 匹配一个单词边界
            ex: boy\b 匹配boy的"右边"不是\w的其他字符 
8:选择符和分组
        (): 分组的意思
        | : 或的意思
            ex: (0\d{2,3}-\d{7,8}) | (1[34578]\d{9})  匹配前面的表达式或后面的表达式
      
9:反向引用  每一对()会分配一个编号,会根据左括号的顺序自动从1开始编
        \数字 :将前面的第几个分组引用下,就不用重写了
            ex: <([a-zA-Z]+)> .+ </\1>  这里\1就是将前面的分组引用过来
                ([a-z]{2}) \1  将前面的重复1次


10:预搜索(零宽断言)  是对位置的匹配
        (?=exp) :断言自身出现的位置的后面能匹配表达式exp
            ex:[a-z]+(?=ing) 后面应该有ing,但是不会匹配
        (?<=exp) :断言自身出现的位置的前边能匹配表达式exp
            ex:(?<=_)[a-z]+  匹配前面有"_"的字符
        (?!exp) :断言此位置的后面不能匹配表达式exp
        (?<!exp):断言此位置的前面不能匹配表达式exp


11:练习
      1: 匹配首尾空格
            (^\s+)|(\s+$)





原创粉丝点击