栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python入门笔记——正则表达式②

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python入门笔记——正则表达式②

我们很多时候会使用转义字符,特别的是要使用字符的时候,会需要用来表示
正则表达式也有这样的应用场景

print(re.match('c:\\a.txt','c:\a.txt').group())
# 这里因为正则中的也有转义要求,故需要再次转义

当然,我们也有较好的方法使得可以不用转义
即是在正则前面加r,表示原生的字符串,python字符串就不转义了
如将上面的代码这样改写:

print(re.match(r'c:\a.txt','c:\a.txt').group())

输出结果:

c:a.txt
c:a.txt

常用的匹配规则-匹配开头结尾
^:
匹配字符串开头(^有两种含义,一是左边描述这种,二是取反,下面描述分组匹配的时候有示例表示)
$:
匹配字符串结尾

如:

result = re.match('^P.*','Python is a language')
print(result.group())
# 必须以^限定的某字符开头,但大概因为我们这使用的match本身就是开头匹配,所以看不出来足够的作用

result1 = re.match('w{5,10}@w{2,}.com$','account@qq.com')
print(result1.group())

输出结果:

Python is a language
account@qq.com

常用的匹配规则-分组匹配
|:匹配左右任意一个表达式
(ab):将括号内字符作为一个分组
num:引用分组num匹配到的字符串
(?P):分组起别名
(?P=name):引用别名为name分组匹配到的字符串

如:

result2 = re.match('[1-9]?d$|100','78')# |左右两边的表达式匹配任意一个,首先找左边的规则,不行再找右边
result3 = re.match('[1-9]?d$|100','100')
print(result2.group())
print(result3.group())

result4 = re.match('([^-]*)-(d*)','0000-123456')# 括号内作为一个分组
# ^表示取反,即不是xxx的字符,例如上面这里就表示不是-的字符
print(result4.group())
print(result4.group(1))
print(result4.group(2))

html1 = '测试数据'
result5 = re.match(r'<(.+)><(.+)>(.+)',html1)
'''
num的使用是很方便的,上面的例子是:在正则里有三个()分组,分别由()定义为了组1、组2、组3
那么后面就可以用num完全代表每个分组的数据,避免重复写,达到了简化的目的
'''
print(result5.group())

baidu = 'www.baidu.com'
result6 = re.match(r'<(?Pw*)><(?Pw*)>.*',baidu)
'''
分组别名
起别名:(?P<别名>)
使用别名:(?P=引用的别名)
'''
print(result6.group())

输出结果:

78
100
0000-123456
0000
123456

测试数据

www.baidu.com

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/739666.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号