python 基础(十四) 正则表达式
正则表达式
概念: 正则匹配就是一个模糊的匹配 只要符合我的匹配规则 就会认为是正确的数据(精确的匹配)
1.[] #代表原子表把想要匹配的内容写入原子表中 匹配包含的任意一位字符
[a] #匹配小写字母a
[ab] #匹配小写字母a或者b
[aAbB] #匹配字母a或b
[195] #匹配任意一位数字
[a-z] #匹配任意一位小写字母
2.^ #在原子表外称之为以...作为开头 放在原子表内叫取反 相当于 \A
^[abc] #匹配以a/b/c字符作为开头
[^abc] #匹配任意一位小写字母a/b/c以外的字符
^abc #匹配以小写字母abc开头的内容
^[0-9]
^[a-zA-Z0-9]
3.$ #以...作为结尾 相当于 \Z
^[1][3-9][0-9]{9}$ ^和$通常是组合使用 真正的限制匹配数据的正确性
4.{m} #控制匹配前面数量的m次 不能单独使用 和普通的内容一起使用或者和原子表
#匹配3个a的操作
[a][a][a]
aaa
a{3}
[a]{3}
{4} #错误写法
[a-zA-Z]{3}
5.{m,n} #控制匹配前面数量的m-n次 不能单独使用 和普通的内容一起使用或者和原子表
#匹配qq号码
5-11
^[1-9][0-9]{4,10}$
010-778192
101-621331
[01]{3}\-[0-9]{6}
6.{m,} #表示匹配前面数量至少m次
[a-z]{3,}
#1 匹配1-99的正则
[1-9][0-9]{0,1}
#2 匹配任意一位正负整数和小数 ?
[\-]{0,1}[1-9]
7.? #可有可无 匹配前面的正则表达式的 0次或者一次 类似于 {0,1} 或指明一个非贪婪的限定符
[1-9][0-9]?
[\-]?[1-9]
8. . #匹配换行符\n以外的任意一位字符
9. * #匹配前面表达式的任意次 相等于{0,}
10. .* #匹配除换行符以外的任意字符任意次 贪婪模式
11. .*? #匹配除换行符以外的任意字符任意次 非贪婪模式
12. + #匹配前面表达式的至少1次 相等于{1,}
13. .+ #匹配除换行符以外的任意字符至少1次 贪婪模式
14. .+? #匹配除换行符以外的任意字符至少次 非贪婪模式
15. () #1.代表一个单元 2.子存储
16. | #表示或
#匹配手机号码或者qq号码
(^[1-9][0-9]{4,10}$)|(^[1][3-9][0-9]{9}$)
正则函数
使用正则函数需要导入内置的 re模块
import re
修正符
re.I 忽略大小写
re.M 多行模式 改变^和$的作用
re.S 改变.的行为 可以匹配换行符
特殊意义的字符
\d 相当于 [0-9]
\D 相当于 [^0-9]
\w 相当于 [a-zA-Z0-9_]
\W 相当于[^a-zA-Z0-9_]
\s 匹配空白字符
\S 匹配非空白字符
(1) re.match(pattern,string,flags) 匹配一次 必须从头开始
pattern:正则表达式
string: 要匹配的字符串的内容
flags: 修正符
返回结果:
匹配成功 返回对象
匹配失败 返回None
注意:
match必须从第一位开始匹配 如果第一位没有符合的 则匹配失败 类似于在正则前方添加^
只匹配一次
取值
group() 将值取出
group([index]) 索引可有可无 如果正则内没有存在括号 则不需要传index
groups() 正则内括号的值 以元组形式进行返回
(2) re.search(pattern,string,flags) 匹配一次包含就可以
pattern:正则表达式
string: 要匹配的字符串的内容
flags: 修正符
返回结果:
匹配成功 返回对象
匹配失败 返回None
只匹配一次
和match的区别 只要字符串中包含就可以
(3) re.findall(pattern,string,flags) 匹配多次
pattern:正则表达式
string: 要匹配的字符串的内容
flags: 修正符
返回结果:
匹配成功返回装有数据的列表
匹配失败返回空列表
(4) re.finditer() 将查询结果变成迭代器进行返回 配合next方法进行操作
next(re.finditer())
(5) re.sub/re.subn 正则替换 返回匹配的次数/不返回匹配的次数
sub(pattern, repl, string, count=0, flags=0)
subn(pattern, repl, string, count=0, flags=0)
(6) re.split 正则拆分
split(pattern, string, maxsplit=0, flags=0):
(7) re.compile(pattern,flags) 编译成正则表达式 可以多次使用
将正则和函数分开使用 提高执行效率 正则表达式 可以多次使用
使用方法
pattern = re.compile("pattern",flags)
pattern.函数名(匹配的字符串)
修正符
re.I(re.IGNORECASE)
re.S(re.DOTALL)
re.M(re.MULTILINE)
python 基础(十四) 正则表达式的更多相关文章
- python学习(十四)正则表达式
原文链接 ## 什么是正则表达式`正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑 ...
- python基础十四之匿名函数
匿名函数 处理简单问题的简化函数,关键字lambda. # 格式:函数名 = lambda 参数:返回值 anonymity = lambda s: s ** 0.5 print(anonymity( ...
- Python 基础语法(四)
Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)------------------------- ...
- Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式
Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式 目录 Pycharm使用技巧(转载) Python第一天 安装 shell 文件 Py ...
- 孤荷凌寒自学python第二十四天python类中隐藏的私有方法探秘
孤荷凌寒自学python第二十四天python类中隐藏的私有方法探秘 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天发现了python的类中隐藏着一些特殊的私有方法. 这些私有方法不管我 ...
- 孤荷凌寒自学python第十四天python代码的书写规范与条件语句及判断条件式
孤荷凌寒自学python第十四天python代码的书写规范与条件语句及判断条件式 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 在我学习过的所有语言中,对VB系的语言比较喜欢,而对C系和J系 ...
- Bootstrap<基础十四> 按钮下拉菜单
使用 Bootstrap class 向按钮添加下拉菜单.如需向按钮添加下拉菜单,只需要简单地在在一个 .btn-group 中放置按钮和下拉菜单即可.也可以使用 <span class=&qu ...
- 初学 Python(十四)——生成器
初学 Python(十四)--生成器 初学 Python,主要整理一些学习到的知识点,这次是生成器. # -*- coding:utf-8 -*- ''''' 生成式的作用: 减少内存占有,不用一次性 ...
- Python第二十四天 binascii模块
Python第二十四天 binascii模块 binascii用来进行进制和字符串之间的转换 import binascii s = 'abcde' h = binascii.b2a_hex(s) # ...
随机推荐
- windows定时计划备份MySql
使用 MySql 的 mysqldump 将数据库文件备份成 sql 文件. Windows下备份 本地的数据库环境 MySql 安装环境:C:\MySql 数据库名称:bbs root root 数 ...
- Eclipse配置python环境
主要分为四步 1.安装java环境 2.在Eclipse下安装Pydev 1)启动 Eclipse,利用 Eclipse Update Manager 安装 PyDev.在 Eclipse 菜单栏中找 ...
- Tensorflow深度学习之十二:基础图像处理之二
Tensorflow深度学习之十二:基础图像处理之二 from:https://blog.csdn.net/davincil/article/details/76598474 首先放出原始图像: ...
- css 浏览器兼容性问题集合
http://www.xidayun.com/index.php/2016/05/16/941/ 文章取自前端蜂小客
- iptables 端口映射
一.环境和要实现功能 PC1的网络设置如下: eth0 192.168.0.29 内网 eth1 219.239.11.22 外网 PC2的网络设置则为:192.168.0.21 内网 我 ...
- P2383 狗哥玩木棒
题目背景 狗哥又趁着语文课干些无聊的事了... 题目描述 现给出一些木棒长度,那么狗哥能否用给出的木棒(木棒全用完)组成一个正方形呢? 输入输出格式 输入格式: 输入文件中的第一行是一个整数n表示测试 ...
- CSS:CSS 合法颜色值
ylbtech-CSS:CSS 合法颜色值 1.返回顶部 1. CSS 颜色 可以用以下方法来规定 CSS 中的颜色: 十六进制色 RGB 颜色 RGBA 颜色 HSL 颜色 HSLA 颜色 预定义/ ...
- bzoj3680
$模拟退火$ $这种全局最优的问题用模拟退火$ $模拟退火就是每次向四周随机移动,移动的幅度和温度成正比,如果新的位置更优就接受,否则按一定概率接收,概率和温度成正比$ $最后稳定后再在最优解附近蹦跶 ...
- XAMPP打不开Apache服务的解决办法
XAMPP打不开Apache服务的解决办法 不用修改设置,应该是80端口被占用了,直接先IIS的网站给停了就OK
- 3.4-3.6 依据业务需求分析HBase的表设计
一.依据[话单]查询需求分析HBase的表设计 1.分析 用户需要进行实时的查询,那么这些数据是放在HBase当中的,每个客户每天接打电话至少20个左右,而通信公司拥有很多用户,每天产生的数据都是上亿 ...