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 ...
随机推荐
- Linux的进程和线程关系
一.理解Linux的进程,线程,PID,LWP,TID,TGID 进程是资源分配的基本单位,线程是调度的基本单位进程是资源的集合,这些资源包括内存地址空间,文件描述符等等,一个进程中的多个线程共享这些 ...
- Jmeter三、重要组件(元素)介绍
一.组件 1.sampler 2.计时器timer 3.(sampler的)前置处理器pre processors, 后置处理器post processors 4.断言assertion==loadr ...
- c++ 构造名字不足的0补齐
stringstream ss; ss << setfill('0') << setw(10) << i; vstrImageFilenames[i] = strP ...
- idea好用的功能
1. 自定义快捷输入 ----https://blog.csdn.net/qq_35091353/article/details/11828025 可以将一些常用的语法,比如各种lamda表达式.tr ...
- git commit --amend适用场景详解
适用场景: 场景1.本地开发代码已提交,提交后发现这次提交的代码有问题,或者漏提交了一些文件,此时,希望达到以下目的: ①修改有问题的代码. ②补足漏提交的文件(一般是新增的文件没有git add . ...
- mysql索引的面试常问问题
- 浙里办微信小程序总结
浙里办微信小程序单点登录流程 1.获取浙里办跳转地址中ticket或者微信小程序中的ticketId let ticket = getQueryString("ticket", w ...
- MySQLdb._exceptions.OperationalError: (2026, 'SSL connection error: unknown error number')
MySQLdb._exceptions.OperationalError: (2026, 'SSL connection error: unknown error number') 问题发生在我远程连 ...
- 关于TIdTCPClient的几种方法
关于TIdTCPClient的几种方法 收藏 其实Indy比较简单,但是可以提供的方法太多了.我找了很久,才搞明白. 比方说这个读取缓冲区的数据,就有很多种方法.相对于TTcpClient的几种方法 ...
- 决策树(DecisionTree)(附源码)
决策树(DecisionTree) 决策树所属类别:监督学习,分类 优点:直观易懂,算法简单 缺点:容易过拟合,对连续型数据不太容易实现 实现方案:ID3,CART,C4.5 详细的资料见连接:别 ...