美文网首页
正则表达式

正则表达式

作者: 墨迹MoJi_5b88 | 来源:发表于2019-03-28 11:15 被阅读0次

    元字符:

    .   除换行符以外的任意字符
    \w  字母或数字或下划线或汉字
    \s  任意的空白符
    \d  任意数字
    \b  单词的开始或结束
    ^   字符串的开始
    $   字符串的结束
    

    反义:

    \W  任意非字母或数字或下划线或汉字
    \S  任意非空白符
    \D  任意非数字
    \B  任意非单词的开始或结束
    [^x]        非x以外的任意字符
    [^aeiou]    非aeiou这几个字母以外的任意字符  
    

    重复:

    *       0或多次
    +       1或多次
    ?       0或1次
    {n}     n次
    {n,}    n或更多次
    {n,m}   n到m次
    

    字符类:

    1、匹配没有预定的元字符集合,用方括号括住
        [aeiou] 匹配任何一个英文元字母 
    2、表示范围: 
        [0-9]   等同\d
    

    分枝条件:

    |   或的关系
    

    分组:

    ()  用小括号指定子表达式
            # (\d{1,3}\.){3}\d{1,3}: \d{1,3}匹配1到3位的数字,(\d{1,3}\.){3}匹配三位数字加上一个英文句号(这个整体也就是这个分组)重复3次,最后再加上一个一到三位的数字(\d{1,3})
    

    后向引用:

    后向引用用于重复搜索前面某个分组匹配的文本。例如,\1代表分组1匹配的文本。

    (exp)           匹配exp,并捕获文本到自动命名的组里
    (?exp)          匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)
    (?:exp)         匹配exp,不捕获匹配的文本,也不给此组分配组号
    (?=exp)         匹配exp前面的位置
    (?<=exp)        匹配exp后面的位置
    (?!exp)         匹配后面跟的不是exp的位置
    

    零宽断言:用于查找在某些内容(但并不包括这些内容)之前或之后的东西

    (?=exp): 
        \b\w+(?=ing\b): 以ing结尾的单词的前面部分(除了ing以外的部分) 如查找I'm singing while you're dancing.时,它会匹配sing和danc
    (?<=exp):
        (?<=\bre)\w+\b: 以re开头的单词的后半部分(除了re以外的部分) 如在查找reading a book时,它匹配ading
    

    负向零宽断言:确保某个字符没有出现,但并不想去匹配它

    (?!exp):
        \d{3}(?!\d): 三位数字,而且这三位数字的后面不能是数字 
        \b((?!abc)\w)+\b: 匹配不包含连续字符串abc的单词
    (?).*(?=<\/\1>)匹配不包含属性的简单HTML标签内里的内容
    

    相关文章

      网友评论

          本文标题:正则表达式

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