s21day25 python笔记

正则表达式

1.定义

  • 定义:正则表达式是一种规则匹配字符串的规则
  • re模块本身只是用来操作正则表达式的,和正则本身没关系
  • 为什么要有正则表达式?
    • 匹配字符串

      • 一个人的电话号码
      • 一个人的身份证号
      • 一台机器的ip地址
    • 表单验证
      • 验证用户输入的信息是否准确
      • 银行卡号
    • 爬虫
      • 从网页源码中获取一些链接、重要数据

2.正则规则

  • 第一条规则 : 本身是哪一个字符,就匹配字符串中的哪一个字符
  • 第二条规则 : 字符组[字符1字符2],一个字符组就代表匹配一个字符,只要这个字符出现在字符组里,那么就说明这个字符能匹配上
    • 字符组中还可以使用范围
    • 所有的范围都必须遵循ascii码从下到大来指定
    • 常用:[0-9] [a-z] [A-Z]

3.元字符

  • \d:表示所有的数字

    • \是转义符 转义符转义了d,让d能够匹配所有0-9之间的数
  • \w:表示大小写字母、数字、下划线
  • \s:表示空白、空格、换行符、制表符
  • \t:匹配制表符
  • \n:匹配换行符
  • \D:表示所有的非数字
  • \W:表示除数字、字母、下划线之外的所有字符
  • \S:表示非空白
  • . :表示除了换行符之外的任意内容
  • [] 字符组:只要在中括号内的所有字符都是符合规则的字符
  • [^ ]非字符组:只要在中括号内的所有字符都是不符合规则的字符
  • ^:表示一个字符的开始
  • $:表示一个字符的结束
  • |:表示或
    • 注意:如果两个规则有重叠部分,总是长的在前面,短的在后面
  • ():表示分组,给一部分正则规定为一组,|这个符号的作用域就可以缩小了
  • 特殊:
    • [\d]、[0-9]、\d:没有区别 都是要匹配一位数字
    • [\d\D]、[\W\w]、[\S\s] 匹配所有一切字符

4.量词

  • {n}:表示只能出现n次
  • {n,}:表示至少出现n次
  • {n,m}:表示至少出现n次,至多出现m次
  • ?:表示匹配0次或1次,表示可有可无,但是有只能有一个,比如小数点
  • +:表示匹配1次或多次
  • *:表示匹配0次或多次,表示可有可无,但是有可以有多个比如小数点后n位
  • 匹配0次出现的情况:
    • 匹配任意的保留两位小数的数字
    • 匹配一个整数或者小数

5.贪婪匹配

  • 默认贪婪匹配,总是会在符合量词条件的范围内尽量多匹配
  • 非贪婪匹配 :惰性匹配
    • 总是匹配符合条件范围内尽量小的字符串
    • 格式:元字符 量词 ? x
      • 表示按照元字符规则在量词范围内匹配,一旦遇到x就停止
      • 示例:.*?x 匹配任意的内容任意多次遇到x就立即停止

s21day25 python笔记的更多相关文章

  1. Python笔记之不可不练

    如果您已经有了一定的Python编程基础,那么本文就是为您的编程能力锦上添花,如果您刚刚开始对Python有一点点兴趣,不怕,Python的重点基础知识已经总结在博文<Python笔记之不可不知 ...

  2. boost.python笔记

    boost.python笔记 标签: boost.python,python, C++ 简介 Boost.python是什么? 它是boost库的一部分,随boost一起安装,用来实现C++和Pyth ...

  3. 20.Python笔记之SqlAlchemy使用

    Date:2016-03-27 Title:20.Python笔记之SqlAlchemy使用 Tags:python Category:Python 作者:刘耀 博客:www.liuyao.me 一. ...

  4. Python笔记——类定义

    Python笔记——类定义 一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属 ...

  5. 13.python笔记之pyyaml模块

    Date:2016-03-25 Title:13.Python笔记之Pyymal模块使用 Tags:Python Category:Python 博客地址:www.liuyao.me 作者:刘耀 YA ...

  6. 8.python笔记之面向对象基础

    title: 8.Python笔记之面向对象基础 date: 2016-02-21 15:10:35 tags: Python categories: Python --- 面向对象思维导图 (来自1 ...

  7. python笔记 - day8

    python笔记 - day8 参考: http://www.cnblogs.com/wupeiqi/p/4766801.html http://www.cnblogs.com/wupeiqi/art ...

  8. python笔记 - day7-1 之面向对象编程

    python笔记 - day7-1 之面向对象编程 什么时候用面向对象: 多个函数的参数相同: 当某一些函数具有相同参数时,可以使用面向对象的方式,将参数值一次性的封装到对象,以后去对象中取值即可: ...

  9. python笔记 - day7

    python笔记 - day7 参考: http://www.cnblogs.com/wupeiqi/articles/5501365.html 面向对象,初级篇: http://www.cnblog ...

随机推荐

  1. Linq模型ObjectContext下查看Sql语句。

    ObjectContext 并没有提供 LINQ to SQL DataContext.Log 这样的功能,要查看实际生成的 T-SQL 语句,要么借助 SQL Server Sql Profiler ...

  2. bin sh git@github.com no such file or directory

    window下使用git: 输入命令:git clone git @github.com:Alan0521/dotvim.git 出现/bin/sh:git@github.com no such fi ...

  3. 【UVA】10635 Prince and Princess(LCS)

    题目 传送门:QWQ 分析 水题.$ O(nlogn) $的LCS 代码 #include <bits/stdc++.h> using namespace std; *, INF=1e9; ...

  4. jQuery的文档操作

    1.插入操作 一.父元素.append(子元素) 追加某元素 父元素中添加新的元素 var oli = document.createElement('li'); oli.innerHTML = '哈 ...

  5. 利用iWARP/RDMA解决以太网高延迟

    导读:“iWARP能够带来超低延迟.”据介绍,RDMA,即远程直接内存访问提供了应用程序到应用程序的直接通信能力,这也就意味着,应用将跳过操作系统,实现远程内存应用程序的访问 关键词: iWARP 低 ...

  6. OpenMP 循环调度 + 计时

    ▶ 使用子句 schedule() 来调度循环,对于循环中每次迭代时间不相等的情况较为有效 ● 代码 #include <stdio.h> #include <stdlib.h> ...

  7. git备忘

    git checkout . 放弃本地修改

  8. MS SQL Server 无法添加、更新或删除从msx服务器上发起的作业(或其步骤或调度)

    因为 服务器 的名字 更改过 use   msdb     go         SP_CONFIGURE   'ALLOW UPDATES',1   RECONFIGURE   WITH   OVE ...

  9. 如何让自己的exe程序开机自启动

    方法一. ①鼠标右键自己的exe程序,创建快捷方式 ②win+R,打开运行对话框,输入shell:startup,如下图: 将exe文件的的快捷方式拷贝到这个目录下,然后下次重启的时候自己的应用程序就 ...

  10. jquery ui的css设计二

    上一篇见这里 本篇重点说一下其换肤功能 换肤一般是指改变控件的字体颜色,背景颜色,边框颜色,hover上去的颜色,背景图片,很少再会涉及修改其长宽,字体类型什么的. 以这个版本的CSS为观察对象,可以 ...