zoukankan      html  css  js  c++  java
  • day_16 正则表达式

    # re模块是用来操作正则表达式的

    # 什么是'正则'
    # 能做什么事情
    # ------》
    # 字符串的规则
    # 给字符串定一个规则
    # 来帮助我们
    #1.检测某一段字符串是否符合规则
    #2,从一大段文字中将符合规则的匹配出来
    # 爬虫
    # 只和字符串相关

    #正则应用:在注册也输入的内容是否合法
    #不过不判断,也会传送非法内容,就会占用资源

    # 规则:
    # 字符组
    # 元字符
    # 量词
    # 简单的字符串的筛选和匹配


    # 规则
    # 待检测一段字符串

    # 字符组[]的概念: 描述的是一个字符位置上的内容规则
    #[0123456]
    # [0-8]
    # [4-6]
    # [9-6] 错误
    # 他们的大小根据ASCII码值来排序

    # 数字 [0-9]
    # 大写字母[a-z]
    # 小写字母[A-Z]
    # 加数字大小写[0-9A-Za-z] 里面无顺序

    # 在字符组当中 - 是有特殊意义的,如果我们想取消这个横杠的特殊意义 [1-9]
    #需要使用作为转移符

    #d 元字符
    # 字符组之外的其他带有特殊字符的方法 [0-9] == d
    # 如果匹配[1-9] 就不能用d
    # [0-9A-Za-z_] w表示标识符
    # 空格本身匹配空格
    # tab制表符
    # 回车换行符
    # 所有以上特殊东西 s
    # 匹配一个单词的边界  hello world o 以o结尾 o以o开头
    #反义词
    # W 除了字母数字下划线所有
    # D 除了数字的所有
    # S 除了空白的所有
    # . 除了换行符之外的所有字符



    # d w s( )
    # D W S

    # 匹配所有 : [Dd] [Ww] [Ss]
    # 非字符组 : [^123] 除了123之外都匹配

    #开始符和结束符
    # ^ $
    # ^hello hello hello hello ->>>>> hello

    # ^hello$ 什么也不匹配 除非上面下面一样的
    # h^hello 永远不存在这种的


    # 或的概念
    # 123|456 竖杠左右边的是一个全集, 永远把相对长的放在左侧

    # 分组的概念
    # www.(baidu|oldboy).com

    # 量词:尽可能多的匹配
    # ^1[3-9]d{9}$
    # {n} 出现n次
    # {n,} 至少出现n次
    # {n,m} 表示出现 n-m次
    # ?
    # + 至少有一个
    # * 全部匹配也可以,如果一个都没有,也算一次

    # 匹配整数[1-9]d*|0
    # 匹配小数 d+.d+
    # 匹配小数或者整数 (d+.d+)|(d+.d+)

      # findall 优先显示分组中的内容
      # split 保留被切掉的分组内的内容
      # search 可以通过组的索引取值
      # 取消分组的特殊行为(?:正则)



    例题:
    # 1、匹配整数或者小数(包括正数和负数)
    # 2、匹配年月日日期 格式2018-12-6
    # 3、匹配qq号
    # 4、长度为8-10位的用户密码 : 包含数字字母下划线
    # 5、匹配验证码:4位数字字母组成的
    # 6、匹配邮箱地址
     
  • 相关阅读:
    C++高精度乘法
    经典的7种排序算法 原理C++实现
    c++ STL
    二分查找c++
    洛谷P1111 修复公路
    01背包写法
    c++编码规范
    github教程
    windows10锁定屏幕聚焦图片导出
    week 6 Spring history and design philosophy
  • 原文地址:https://www.cnblogs.com/CNHK1949/p/10571134.html
Copyright © 2011-2022 走看看