python之re详解
import re
# .匹配任何一个字符,除了换行
#【】匹配里面任意一个字符
# \d匹配一个数字0-9
# \D匹配不是一个数字
# \s 匹配一个空格和tab
# \S 匹配非空格和tab一个字符
# \w 匹配ASCII字符中的数字和字母和下划线,就是 [a-zA-Z0-9_] 。如果设置了 LOCALE 标记,就匹配当前语言区域的数字和字母和下划线。
#
# \W 匹配非单词字符的字符
# \z匹配空格和tab
# ----------------------------------
# * 匹配前一个字符0次或多次,可有可无,贪婪模式
# + 匹配前一个至少一次或多次
# ? 匹配0到1次,
# .默认模式,匹配除了换行的任意字符。如果指定了标签 DOTALL ,它将匹配包括换行符的任意字符。
# ^
# (插入符号) 匹配字符串的开头, 并且在 MULTILINE 模式也匹配换行后的首个符号。
#$ 匹配字符串尾或者在字符串尾的换行符的前一个字符
# {m} 对其之前的正则式指定匹配 m 个重复;少于 m 的话就会导致匹配失败。比如, a{6} 将匹配6个 'a' , 但是不能是5个。
# {m,n} 对正则式进行 m 到 n 次匹配,在 m 和 n 之间取尽量多。 比如,a{3,5} 将匹配 3 到 5个 'a'。忽略 m 意为指定下界为0,忽略 n 指定上界为无限次。 比如 a{4,}b 将匹配 'aaaab' 或者1000个 'a' 尾随一个 'b',但不能匹配 'aaab'。逗号不能省略,否则无法辨别修饰符应该忽略哪个边
# pyhong变量名规则:不能以数字开头,可以用字母,下划线开头,包含数字
# 匹配规则
# |左右任意个表达式a|b
# ()分组
#\mum 引用分组后的别名
# 添加别名 (?p<name>表达式)
.*? []?都是非贪婪模式,尽可能少的匹配
python默认贪婪模式
# c=re.compile(rec)
def retest(pattern1,text):
i=0
for t in text:
d=re.match(pattern1,t,re.I|re.M)#匹配以a开头
if d:
f=d.group() #输出匹配到的结果,如果结果不存在,报aattributeerror
# group(num)放回所有结果可以通过num取每一次的结果
# groups以元祖形式返回结果,不能通过num取每个结果
i+=1
print(i)
print(f)
pattern1=r'a|100'
text=' ',' ','apple' ,'_a_','1aa','112345673r','abbb ','ba','bac',' bddddder',' aaa'
pattern2=r'<(.+)><(.+)>(.+)</(.+)></(.+)>'
t3='<heml><h1>测试</hi></heml>'
t2="we are good ,you are good"
pattern3=r'<(?P<H>\w*)><(?P<H1>\w*)>.*</(?P=H1)></\w*>'
res=re.compile(pattern2)#将正则表达式编译成一个对象,效率高,科利用率高
# g=re.search('good',t2)#找到就返回,首次
g=re.findall('g',t2)#返回所有结果,冰洁保存在列表里,包括重复的
g=re.finditer("g",t3)
# re.sub()#替换文,默认替换所有文本
# re.subn()#返回替换数量
re.split()#分割字符串
# g=re.match(pattern3,t3)未用compile用法
# g=res.match(t3)
print('----------- -----------')
print(g)
print("")
# print(g.group(2))
# print(g.group(2))
官方文旦:https://docs.python.org/zh-cn/3.11/library/re.html
python之re详解的更多相关文章
- Python 字符串方法详解
Python 字符串方法详解 本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息. ...
- python time模块详解
python time模块详解 转自:http://blog.csdn.net/kiki113/article/details/4033017 python 的内嵌time模板翻译及说明 一.简介 ...
- Python中dict详解
from:http://www.cnblogs.com/yangyongzhi/archive/2012/09/17/2688326.html Python中dict详解 python3.0以上,pr ...
- Python开发技术详解(视频+源码+文档)
Python, 是一种面向对象.直译式计算机程序设计语言.Python语法简捷而清晰,具有丰富和强大的类库.它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结 ...
- python/ORM操作详解
一.python/ORM操作详解 ===================增==================== models.UserInfo.objects.create(title='alex ...
- 【python进阶】详解元类及其应用2
前言 在上一篇文章[python进阶]详解元类及其应用1中,我们提到了关于元类的一些前置知识,介绍了类对象,动态创建类,使用type创建类,这一节我们将继续接着上文来讲~~~ 5.使⽤type创建带有 ...
- Python开发技术详解PDF
Python开发技术详解(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1F5J9mFfHKgwhkC5KuPd0Pw 提取码:xxy3 复制这段内容后打开百度网盘手 ...
- python之数据类型详解
python之数据类型详解 二.列表list (可以存储多个值)(列表内数字不需要加引号) sort s1=[','!'] # s1.sort() # print(s1) -->['!', ' ...
- Python环境搭建详解(Window平台)
前言 Python,是一种面向对象的解释型计算机程序设计语言,是纯粹的自由软件,Python语法简洁清晰,特色是强制用空白符作为语句缩进,具有丰富和强大的库,它常被称为胶水语言. Python是一种解 ...
- python docopt模块详解
python docopt模块详解 docopt 本质上是在 Python 中引入了一种针对命令行参数的形式语言,在代码的最开头使用 """ ""&q ...
随机推荐
- UEC++学习(1)
第三章 流程控制 第一节 C++和蓝图循环 ForLoop蓝图节点相当于C++中的for循环,ForeLoopWithBreak节点相当于for循环体中加了break语句,当触发某个条件时直接结束. ...
- 01背包&完全背包二维写法的对比,进而理解一维优化后的正逆序
01背包题解 完全背包题解 二维写法时两种背包问题核心代码的区别: 可以看出,01背包用的是上一层的数据,完全背包用的是当前层的数据 所以优化为一维时, 01背包需逆序 for (int i = 1; ...
- transition实现元素动画平移
效果: 将灰色背景区域移除屏幕,并实现动画效果 代码: 使用transition属性可定义平移的时间,巧用calc得出非确定高度元素的平移距离
- vue 组件之间事件触发($emit)与event Bus($on)的用法说明
组件之间事件触发 新增按钮组件: 操作按钮组合组件: 此时有个需求就是,无论是哪个按钮,如果改变了列表中的数据,列表需要实时更新数据. 此时就需要用到组件间的事件触发. 父子组件之间事件触发可以使用$ ...
- Linux(CentOS)安装脚本
此文以CentOS为例,乌班图的是有区别的,请参照https://www.cnblogs.com/takako_mu/p/11725733.html. 安装.Net Core (能访问外网的情况下采用 ...
- flask-script的简单使用
1.Flask-Script介绍Flask-Script的作用是可以通过命令行的形式来操作Flask.Flask Script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定 ...
- Servlet's characters of get and post
Tomcat默认是使用ISO8859-1来解码的,ISO8859-1是不支持中文的. 1.post请求解决乱码原因: 服务器不知道按哪种编码来处理HTML等文件来响应给浏览器的,所以处理post请求时 ...
- 离线安装docker和harbor
1.下载docker和harbor版本(版本自选) docker下载地址: https://download.docker.com/linux/static/stable/x86_64/ harbor ...
- python 超时装饰器
#************************************************************** 设置超时的装饰器 *************************** ...
- 学习记录--C++组合+依赖+依赖倒置
组合关系:表示类之间的关系是整体与部分的关系.即has a / contains a的关系 在面向对象程序设计中,将一个复杂对象分解为简单对象的组合. 在代码中,体现为将一个或多个类的对象作为另一个类 ...