正则表达式

正则表达式
世界三大难懂
医生的处方、道士的符、码农的正则
世界三大难题
欧洲的债务、非洲的难民、中国的高地
早上吃什么、中午吃什么、晚上吃什么

一、使用场景

      1、手机号、邮箱的验证
    2、url判断、配置文件、字符串的操作

二、使用原则

        1、能不用就不用、效率低,
    2、能用字符串函数就用函数

三、正则的组成

       定界符、原子、元字符、模式修正符
        【注】 1、正则表达式是从左到右完整匹配
                2、正则表达式默认是贪婪匹配
    
    1、定界符   是正则表达式的边界
        【注】 1、定界符不能使用0-9、a-z、A-Z、\、空格
                2、通常使用 '/' 作为正则的定界符
                
    2、原子        是正则表达式的最小单位 (不可再分割)
        \d: 0-9
        \D: 除了0-9
        \w: 字 包括 0-9 a-z A-Z _
        \W: 除了 0-9 a-z A-Z _
        \s: 空白字符 空格 \n \t \r
        \S: 除了空白字符
        \b: 词边界
        \B: 非词边界
        []: 原子列表,会匹配中间的任意一个原子
        [^]: 取反 写在原子列表最前面是取反的意思
        . : 除了\n意外的任意字符 
        
    3、元字符   是用来修饰原子的 不能单独存在
        *: 任意次
        +:  至少一次
        ?:可有可无 最多一次
        {}: 指定次数
            {20} 指定20次
            {3,5} 指定3-5次
            {3,} 至少3次
            {0,3} 0-3次
        ^:  以指定原子开头
        \A: 同上
        $:  以指定的原子结束
        \Z: 同上
        |: 或
        (): 用来限制优先级、括号里表示一个整体 子模式(了解)
        
    4、模式修正符 用来给正则表达式修饰、限制
        【注】 模式修正符必须写在正则表达式之后
        i:  忽略大小写
        m:  多行匹配
        s:  能让. 匹配到\n
        x:  忽略正则表达式当中的空格
        A:  作用与\A和^一样
        U:  对正则贪婪模式取反
    5、组合拳
        .+?:    取消贪婪匹配  只匹配一个
        .*?:    取消贪婪匹配  匹配出来0个字符
        
    【注】
        1、当要匹配的字符是正则里的特殊字符 需要转义 \
        2、当需要匹配 \ 需要前面 3-4个 \

四、匹配练习

1、手机号
2、邮箱
3、URL

你可能感兴趣的:(正则表达式)