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详解的更多相关文章

  1. Python 字符串方法详解

    Python 字符串方法详解 本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息.        ...

  2. python time模块详解

    python time模块详解 转自:http://blog.csdn.net/kiki113/article/details/4033017 python 的内嵌time模板翻译及说明  一.简介 ...

  3. Python中dict详解

    from:http://www.cnblogs.com/yangyongzhi/archive/2012/09/17/2688326.html Python中dict详解 python3.0以上,pr ...

  4. Python开发技术详解(视频+源码+文档)

    Python, 是一种面向对象.直译式计算机程序设计语言.Python语法简捷而清晰,具有丰富和强大的类库.它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结 ...

  5. python/ORM操作详解

    一.python/ORM操作详解 ===================增==================== models.UserInfo.objects.create(title='alex ...

  6. 【python进阶】详解元类及其应用2

    前言 在上一篇文章[python进阶]详解元类及其应用1中,我们提到了关于元类的一些前置知识,介绍了类对象,动态创建类,使用type创建类,这一节我们将继续接着上文来讲~~~ 5.使⽤type创建带有 ...

  7. Python开发技术详解PDF

    Python开发技术详解(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1F5J9mFfHKgwhkC5KuPd0Pw 提取码:xxy3 复制这段内容后打开百度网盘手 ...

  8. python之数据类型详解

    python之数据类型详解 二.列表list  (可以存储多个值)(列表内数字不需要加引号) sort s1=[','!'] # s1.sort() # print(s1) -->['!', ' ...

  9. Python环境搭建详解(Window平台)

    前言 Python,是一种面向对象的解释型计算机程序设计语言,是纯粹的自由软件,Python语法简洁清晰,特色是强制用空白符作为语句缩进,具有丰富和强大的库,它常被称为胶水语言. Python是一种解 ...

  10. python docopt模块详解

    python docopt模块详解 docopt 本质上是在 Python 中引入了一种针对命令行参数的形式语言,在代码的最开头使用 """ ""&q ...

随机推荐

  1. docker build提示 error checking context:can't stat xxx

    这个提示基本是权限不够外加目录结构不对,保险的做法直接删除 Dockerfile. 正确做法:(可能还有其他的解决方案吧,这个可以生效) 重新建个目录,给目录授权,然后再dockerfile文件夹中建 ...

  2. IP协议数据包

    Header Length:头部长度固定20字节,永远为5(4bit为单位) Total Length:头部+包, 抓包结果 Identification.Fragment Flags.Fragmen ...

  3. 【UE4】GameplayTag的妙用(ActorTag)

    我不会抛下这个残破的世界 在现代游戏引擎中,有一个"Tag"的概念,无论是在Unreal还是Unity中,他们都有大同小异的tag实现. 此篇随笔以Actor Tag举例,简单讲解 ...

  4. 判断MP4 文件

    public class CheckResult    {        public bool IsMp4 { get; set; }        public bool SupportStrea ...

  5. spring-security-oauth2使用遇到的坑

    异常信息为 2021-08-22 14:24:11.086 WARN 17812 --- [ main] ConfigServletWebServerApplicationContext : Exce ...

  6. http请求的方法

    1.OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送'*'的请求来测试服务器的功能性. 2.HEAD 向服务器索要与GET请求相一致的相应,只不过响应体将不 ...

  7. 狂神的学习笔记demo11(包机制)

    无法生成子包的问题:设置图标里的Compact Middle Packages勾去掉 //定义包 package package com.panda.base1; //导入包import import ...

  8. spring-boot项目布到tomcat容器下部署

    一.修改打包形式 在pom.xml里设置 `war` <packaging>war</packaging> 二.移除嵌入式tomcat插件 在pom.xml里找到spring- ...

  9. 使用Jmeter进行https接口测试时,如何导入证书?

    转载:https://www.cnblogs.com/tester-zhangxiaona/p/12295473.html

  10. GPU Skinning

    这个工具的作用是同一种角色在同屏里面出现一大堆时,可以大幅度的降低DrawCall.我试了一下,感觉挺有意思的,各位可以试试.它的原理实际上是把骨骼矩阵存在配置文件里面,然后通过特殊的shader,计 ...