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 ...
随机推荐
- @Transactional详细介绍
@Transactional在设置的时候有以下几个主要属性可以设置, 1.propagation:分别为事务的传播行为; 2.isolation:事务的隔离级别; 3.readOnly读写事务控制; ...
- 2月23日javaweb之Maven
Maven常用命令 compile:编译 clean:清理 test:测试 package:打包 install:安装 Maven生命周期 Maven对项目构建的生命周期描述是一次构建过程经历了多少个 ...
- java计时器Timer
基于java的计时器,定时发送消息 package timer; import java.lang.reflect.Array; import java.text.ParseException; im ...
- [整理]String用法/转换substring
substring(a)从a开始 substring(a,b) [a,b] s=123456789 s.substring(3):456789 s.substring(0,3):1234
- C++11:初始化列表
在老版本的C++中,我们可以比较方便得对结构体.数组等对象利用{}进行初始化,而类变量的初始化则取决于构造函数的形式,例如: struct A { int a, b, c; }; class Foo ...
- scaled logy
library(ggplot2) set.seed(1) vals1 <- rbeta(1000, 0.5, 0.1) vals2 <- rbeta(1000, 0.25, 0.3) gg ...
- 使用scrollIntoView 使某元素滚动到指定位置
var el = document.getElementById('A'); el.scrollIntoView('true'); 知识: element.scrollIntoView(); // 使 ...
- laravel groupBy 分页
$model=DB::table('tablebname') ->where(function($query) use ($res){ $query->where('xx','xx'); ...
- MySQL学习(六)timestamp & datetime 区别
参考博客: https://cloud.tencent.com/developer/article/1407693 timestamp只使用datetime一半的存储空间,并且会根据时区变化,具有特殊 ...
- 灵感宝盒图谱全新改版!代码实验室开启报名丨RTE NG-Lab 双周报
前言 RTE NG-Lab 计划已经推出一段时间了,计划目前包含灵感宝盒(Idea Box).代码实验室(Code Lab).独立开发者孵化器(NGLab Incubator)三个项目.我们希望借助这 ...