day正则表达式补充
# 2.正则
# 方法:findall | match | split | sub
# a = 10
# print(a.__hash__())
# def fn():
# pass
# print(fn.__name__)
# import json
# print(json.dumps([1,2,3]))
import re
# 全文匹配,返回值是列表
res = re.findall('\d*?', 'd1') # ['', '', ''] | ['', '', '1', '']
print(res)
# 非贪婪匹配的引用场景: 一般都要结合特定的开头与结尾
res = re.findall('<.*>', '<a>abc</a>')
print(res) # ['<a>abc</a>']
res = re.findall('<.*?>', '<a>abc</a>')
print(res) # ['<a>', '</a>']
res = re.findall('\w*?>', '<a>abc</a>')
print(res) # ['a>', 'a>']
# 分组:通过分组加(),拿到匹配到的结果中的指定信息
res = re.findall('((\w*?)>)', '<a>abc</a>')
print(res) # [('a>', 'a'), ('a>', 'a')]
# 操作分组的方法
# (?P<name>...): 有名分组
# 返回值是match匹配的结果对象,可以.group(组序号|组名)来取具体组的信息
res = re.match('(\d{3})(?P<center>\d{3})(\d{3})', '123456789')
print(res.group('center'))
# 传入一个有正则语法的普通字符串,得到一个可以调用正则方法的正则字符串
r = re.compile('(\w*?)>')
print(r.findall('<a>abc</a>'))
# res = re.findall('<([a-z]{1,3})>(\w*?)</[a-z]{1,3}>', '<a>abc</a><b>123</b>')
# print(res) # [('a', 'abc'), ('b', '123')]
res = re.sub('(\d{3})(?P<center>\d{3})(\d{3})', r'\2\1\3', '<123456789>')
print(res)
#
[0-9] #匹配数字0~9
[a-z] #匹配小写字母
[A-Z] #匹配大写字母
\d | \D #匹配数字 | 非数字
\w| \W #匹配字母数字下划线 | 非字母数字下划线
\s | \S #匹配不可见字符:\n \t 空格等 | 可见字符
\b:边界匹配, 按空格结束匹配 需要用r将正则转义,不然得不到想要的结果
.
a|b == [ab]
[^msg]: msg的对立面
*
+
?
*?
+?
??
'''
import re
print(re.findall(r'a[a-z]*\b', 'a ab c abc def ab'))
print(re.findall(r'[^ab]', ' aab c abc def ab'))
# 身份证:18位
# 200000200808081111
# [1-7][0-9]{5}
# (?:19[0-9]{2}|20[01][0-9]): 1900 - 2019
# (?:0[1-9]|1[0-2]): 01-12
# (?:0[1-9]|[12][0-9]|3[01]) : 01-31
# [0-9]{3}
# [0-9Xx]
# [1-7][0-9]{5}(?:19[0-9]{2}|20[01][0-9])(?:0[1-9]|1[0-2])(?:0[1-9]|[12][0-9]|3[01])[0-9]{3}[0-9Xx]
# 邮箱
# 30000000@qq.com
# [a-zA-Z0-9]\w{,15}@[176|178|192]\.[com|com\.cn|cn]
# 获取百度首页图片地址
import requests
responds = requests.get('https://www.baidu.com/')
# print(responds.text)
content = responds.text
# www.baidu.com/img/gs.gif
content += 'http://www.baidu.com/wimg/gs.gif'
# res_list = re.findall('www[^w]*?(?:gif|png)', content)
res_list = re.findall('www.{1,30}(?:gif|png)', content)
# print(len(res_list))
print(res_list)
day正则表达式补充的更多相关文章
- Python开发【第一篇】Python基础之正则表达式补充
正则表达式 一简介:就其本质而言,正则表达式(或RE)是一种小型的.高度专业化的标称语言,(在Python中)它内嵌在Python中,并通过re模块实现.正则表达式模式被编译成一系列的字节码,然后由用 ...
- javascript 正则表达式补充
定义 JavaScript种正则表达式有两种定义方式,定义一个匹配类似 <%XXX%> 的字符串 1. 构造函数 var reg=new RegExp('<%[^%>]+%&g ...
- JavaScript正则表达式补充
定义正则表达式 /.../用于定义正则表达式 /.../g表示全局匹配 /.../i表示不区分大小写 /.../m表示多行匹配 JS正则匹配时本身就是支持多行,此处多行匹配只是影响正则表达式^和$,m ...
- python正则表达式补充
import re origin= "hello alex bcd alex 1ge alex acd 19" r=re.match("(?P<n1>h)(? ...
- Python:Day19 正则表达式补充
贪婪匹配 贪婪匹配是指字符后面是*+?的时候,都是尽可能多的匹配,如果不想尽可能多的匹配,那么在这三个字符后面加?号即可,这样变成惰性匹配,按最少匹配. ret = re.findall('ab??' ...
- HTML(六)——表单验证、正则表达式、事件
1.表单验证<form></form> (1).非空验证(去空格) (2).对比验证(跟一个值对比) (3).范围验证(根据一个范围进行判断) (4).固定格式验证:电话号码, ...
- form表单验证和事件、正则表达式
1.表单验证<form></form> (1).非空验证(去空格) (2).对比验证(跟一个值对比) (3).范围验证(根据一个范围进行判断) (4).固定格式验证:电话号码, ...
- 2016年11月6日--form表单验证和事件、正则表达式
1.表单验证<form></form> (1).非空验证(去空格) (2).对比验证(跟一个值对比) (3).范围验证(根据一个范围进行判断) (4).固定格式验证:电话号码, ...
- 2016/2/25 1、<表单验证<form></form> 2、正则表达式 3、事件
1.<表单验证<form></form> (1).非空验证(去空格) (2).对比验证(跟一个值对比) (3).范围验证(根据一个范围进行判断) (4).固定格式验证:电 ...
随机推荐
- nn.ConvTranspose2d的参数output_padding的作用
参考:https://blog.csdn.net/qq_41368247/article/details/86626446 使用前提:stride > 1 补充:same卷积操作 是通过padd ...
- 有趣的 box-decoration-break
这两天接触到一个很有意思的 CSS 属性 -- box-decoration-break.下面就一起去一探究竟. 因为 MDN 上关于这个属性,没有中文文档,所以一直在想一个合理贴切的中文翻译.直译一 ...
- redis发布订阅Java代码实现
Redis除了可以用作缓存数据外,另一个重要用途是它实现了发布订阅(pub/sub)消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. 为了实现redis的发布订阅机制,首先要打开re ...
- 简单读!zookeeper单机模式的启动逻辑
zk用处如此之多,以至于每个地方都要你理解zk原理! 请按如下操作姿势打开: 1. 打开zk的git仓库地址:https://github.com/apache/zookeeper , 确认过眼神,它 ...
- React 与 React-Native 使用同一个 meteor 后台
meteor 可以快速构建 pc,移动端,桌面端应用. 最大的优点是:数据库的数据发生变化时,可以实时推送到前端,非常适用于实时展示的应用开发. 在 react,react-native 应用中,可以 ...
- NewBuiltBottomSheetDialog【新建底部对话框】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 演示在底部选项卡上方弹出底部对话框效果. 效果图 代码分析 NewBuiltBottomSheetDialog继承BottomShe ...
- 机器学习——随机森林,RandomForestClassifier参数含义详解
1.随机森林模型 clf = RandomForestClassifier(n_estimators=200, criterion='entropy', max_depth=4) rf_clf = c ...
- 把ABP框架部署到Docker中
本文旨在将Abp项目部署到Docker容器中,借助Gitee存储,Jenkins持续构建,利用Docker Compose生成镜像.启动镜像,在官网给定的Abp项目中,虽然用到了Dockerfile. ...
- Flink中的Time
戳更多文章: 1-Flink入门 2-本地环境搭建&构建第一个Flink应用 3-DataSet API 4-DataSteam API 5-集群部署 6-分布式缓存 7-重启策略 8-Fli ...
- Docker进阶之七:管理应用程序数据
管理应用程序数据:Volume Docker提供三种不同的方式将数据从宿主机挂载到容器中:volumes,bind mounts和tmpfs. volumes:Docker管理宿主机文件系统的一部分( ...