• 正则表达式


      

     1. 什么是正则表达式:

        一种匹配字符串的规则

     2. 正则表达式能作甚莫

        制定一个规则,来确定一个字符串是否符合规则或者从大段的字符串中,找到符合规则的

        内容

        登录注册表单验证 ; 爬虫 ; 自动化开发 ; 日志开发

     3. 正则表达式语法

       元字符:

        字符组 [ ]  在一个字符的位置上能出现的内容

          [0-9] 表示这一位置上只匹配0到9之间的一个数字

         [A-Z] 表示这一位上只能匹配A到Z之间的一个大写字母(Python根据ascii码的顺序确

          定A-Z的先后范围)

         [a-z] 表示这一位上只能匹配a到z之间的一个小写字母(Python根据ascii码的顺序确

          定a-z的先后范围)

         [0-9][A-Z][a-z]表示匹配三个字符,且按照顺序满足每一位置上的条件

         [0-9a-zA-Z]  标识匹配一个字符,满足每一范围的条件.但是没有顺序限制

         [^abc] 非字符组 在此种情况,^ 相当于'非', 与[ ]所对应的位置不允许有[ ]内的内容

        

        d  表示匹配一个字符,匹配的是一个数字

        w  表示匹配一个数字字母下划线

        s  标识匹配任意一个空白字符(回车 / ,空格,制表符 / tab)

          表示匹配回车

          表示匹配制表符

        D  匹配非数字

        W  匹配非数字字母下划线

        S  匹配非空白字符

        [dD] [sS] [wW]  表示匹配所有

        .  匹配除换行符以外的任意字符

          匹配一个单词的边界   o  表示只匹配以o结尾的边界  o 表示匹配以o开始的边界

        ^  匹配字符串的开始

        $ 匹配字符串的结尾

                                     

        |    表示可以匹配 | 左右的字符都可以( ' 或 ' 的意思)

           abc|ab   'abc'和'ab'都可以 ; 

          ab|abc   只有ab可以,(从左往右查找,找到就停止,所以只找'ab',不再往下找)

        ()  分组 

      

      量词 ?  +  *  {}

       ?   表示 0 次或1 次  + 表示 1 次或多次  * 表示 0 次或多次

       {n}  表示 n 次  {n,}   n 次以上  {n,m}   n 到 m 次

       元字符和量词结合 , 表示在同一位置可以陪配多个

     回溯算法  (用回溯算法完成贪婪匹配)

      特殊的用法和现象

       ? 的使用

        在量词后面加个 ? (??  +?   *?)取消贪婪匹配(尽可能多的匹配) 变成惰性

        匹配(尽可能少的匹配)

  • 相关阅读:
    敏捷之一:以终为始
    Rails non browser app高级篇-capistrano/daemon部署
    ios 5下设置屏幕方向为landscape
    Android敏捷开发实践(连载)
    Rails+Mongodb的一个重要技巧:如何得到last N Records?
    在macos x上 编译jzmq 3.x
    计划缓冲区
    转载程序员的十层楼
    特权账户是什么?
    如何管理公司的共享iPad?
  • 原文地址:https://www.cnblogs.com/panda-pandeyong/p/9434255.html
Copyright © 2020-2023  润新知