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. Shell脚本基本命令5

    1.sort的稳定性 例以前面两个字段为键值,排序这四行 $ sort -t_  -k1,1 -k2,2 <<EOF one_two one_two_three one_two_four ...

  2. 鸿蒙hi3861V100开发板问题记录

    1.引脚复用 2.引脚复用方法: 1.看业务代码使用的是uart几,如使用的是uart2(实测可用uart1 tx为GPIO6, rx为GPIO5:uart2 tx为GPIO11,rx为GPIO12) ...

  3. leetcode 1636

    一些关于hashmap和list的用法 class Solution { public int[] frequencySort(int[] nums) { Map<Integer, Intege ...

  4. webstrom破解

    1.下载webstrom补丁 链接:https://pan.baidu.com/s/1I93J_JOlbZzkoqV4EsJlpQ       提取码:kopn       (永久有效) 2.将补丁复 ...

  5. SQL语句底层执行顺序

    1. SELECT 语句的完整结构 SQL92语法: SELECT ...,....,(存在聚合函数) FROM ...,...,... WHERE 多表的连接条件 AND 不包含聚合函数的过滤条件 ...

  6. Lenovo Vantage 完全卸载

    Lenovo Vantage 完全卸载 我的T480,最近因为在休眠状态下断电导致不开机,按开机键所有灯闪烁.翻阅百度发现居然是通病,自从 type-c 供电方案以来就有,无奈只有被奸商坑了350,只 ...

  7. Js 代码递归实现树形数据与数组相互转换。

    贴代码: // Grid->Tree 结构组装. var tree = []; this.setTreeData(table, tree, ""); //组装树形 setTr ...

  8. Pytorch 感知机

    单层感知机 \[\begin{aligned} & y = XW + b \\ & y = \sum x_i*w_i+b\\ \end{aligned} \] Derivative \ ...

  9. 1.Vue概述

    一.Vue的创建者及Vue的历史 尤雨溪老师:Vue.js的创建者 2014年2月,Vue.js正式发布 2015年10月27日,正式发布1.0.0 2016年4月27日,发布2.0的预览版本 二.V ...

  10. 转载:Windows Server查看W3SVC IIS服务器中对应的网站日志

    W3SVC日志文件夹中序号的含义,格式就是W3SVC+网站ID 如果没有自定义站点的日志路径,日志默认的路径是C:\inetpub\logs\LogFiles\ 基本上每个网站存放日志的文件夹名称都是 ...