s21day25 python笔记
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笔记的更多相关文章
- Python笔记之不可不练
如果您已经有了一定的Python编程基础,那么本文就是为您的编程能力锦上添花,如果您刚刚开始对Python有一点点兴趣,不怕,Python的重点基础知识已经总结在博文<Python笔记之不可不知 ...
- boost.python笔记
boost.python笔记 标签: boost.python,python, C++ 简介 Boost.python是什么? 它是boost库的一部分,随boost一起安装,用来实现C++和Pyth ...
- 20.Python笔记之SqlAlchemy使用
Date:2016-03-27 Title:20.Python笔记之SqlAlchemy使用 Tags:python Category:Python 作者:刘耀 博客:www.liuyao.me 一. ...
- Python笔记——类定义
Python笔记——类定义 一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属 ...
- 13.python笔记之pyyaml模块
Date:2016-03-25 Title:13.Python笔记之Pyymal模块使用 Tags:Python Category:Python 博客地址:www.liuyao.me 作者:刘耀 YA ...
- 8.python笔记之面向对象基础
title: 8.Python笔记之面向对象基础 date: 2016-02-21 15:10:35 tags: Python categories: Python --- 面向对象思维导图 (来自1 ...
- python笔记 - day8
python笔记 - day8 参考: http://www.cnblogs.com/wupeiqi/p/4766801.html http://www.cnblogs.com/wupeiqi/art ...
- python笔记 - day7-1 之面向对象编程
python笔记 - day7-1 之面向对象编程 什么时候用面向对象: 多个函数的参数相同: 当某一些函数具有相同参数时,可以使用面向对象的方式,将参数值一次性的封装到对象,以后去对象中取值即可: ...
- python笔记 - day7
python笔记 - day7 参考: http://www.cnblogs.com/wupeiqi/articles/5501365.html 面向对象,初级篇: http://www.cnblog ...
随机推荐
- VBA7种文档遍历法
Sub 在选定文档最后加入一句话() '遍历文件 Dim MyDialog As FileDialog On Error Resume Next Application.ScreenUpdating ...
- java.lang.NumberFormatException:For input string:"undefined"
在将字符串转换为数字时导致此错误,解决此问题的思路: 1.添加 try catch语句 2.判断字符串是否为数字,将介绍java中判断字符串是否为数字的方法的几种方法 发生错误的代码: java.la ...
- Ant+jmeter 实现自动化性能测试
一.前言 性能测试首选的工具是JMeter,在此不多做介绍,但是不得不说JMeter也是一款非常好的接口测试工具.性能测试过程中手工重复的活动非常多,为了给客户提供一个性能测试报告,我用了一周时间进行 ...
- Mysql插入数据报错java.sql.SQLException: Incorrect string value: '\xF0\x9F\x93\x8D\xE6\x88...'
今天读取solr里面的数据,往mysql插入时报错, Incorrect string value: '\xF0\x9F\x93\x8D\xE8\x88...' for column 'title' ...
- eclipse 创建dynamic web project不能运行
按照李刚<轻量级java ee企业应用实战>第三版,第二章的配置,发现eclipse 创建dynamic web project不能运行,原来作者第二章时还不是在eclipse中开发的,只 ...
- guicorn 是什么
guicorn 是什么? 在回答问题之前我们先来看看 web服务器的典型过程[1] 1. 建立链接:如果没有连接,要建立连接 2. 接收请求:对客户端发来的请求进行解析. 3. 处理请求:转发给预定义 ...
- ES6系列_5之字符串模版
1.字符串模板对比引入: (1).之前我们也可以使用JavaScript输出模版字符串,通常是下面这样的: var restult= "姓名: <b>"+person. ...
- WPF TabControl控件-事件相关问题
TabControl控件的TabItem的Content元素,例如:DataGrid控件,在对事件的处理时,需要对事件的源引起关注,当需要处理DataGrid的事件时,事件会传递到TabControl ...
- 设置VMWARE通过桥接方式使用主机无线网卡上网(转载)
其它人的评论:好文,使用bridged最简单;桥接也可选择自定义的虚拟网络-->VMnet1,这样可以让虚机的IP于主机不同,与VMnet1相同.将主机的的网络访问共享给VMnet1(这个法子没 ...
- asp.net 初级程序员面试题【待续】
C# 常见的排序方式 冒泡排序(Bubble sort) 堆排序(Heap sort) 插入排序(Insertion sort) 归并排序(Merge sort) 快速排序(Quick sort) ...