Python高级特性之正则表达式re

本文介绍了Python的正则表达式库re,包括匹配原则、常用方法如match、search、findall,以及正则表达式的特殊字符和操作符。讨论了贪婪性和分组,并提到了模式匹配的选项如re.IGNORECASE、re.MULTILINE等。
摘要由CSDN通过智能技术生成

正则表达式(regular expression):精确匹配或者模糊匹配
所有的语言使用的正则大同小异

正则的用处:
1、爬虫
2、分析日志

正则的匹配原则:从第一个字符逐一尝试匹配,返回最长的匹配内容(正则的贪婪性,尽可能多的匹配)

正则的匹配方法:
1、match(一个匹配结果):表示从字符串的第一个字符开始匹配,如果从第一个字符就不能匹配上,则匹配失败,返回None
2、search(一个匹配结果):表示从字符串任意位置匹配1次即可,遍历完整个字符串仍匹配不到的,则匹配失败,返回None
3、findall(多个匹配结果):表示匹配所有正则表达式匹配的内容,返回列表
4、group:将所有正则表达式匹配的内容显示出来

正则的扫描顺序:从第一个字符开始向后扫描
re.match(r"1",“1b”) 匹配对象,匹配到后,就不再向后匹配了
re.match(r"1",“0b”) None,第一个就没匹配上,就不再向后匹配了
re.search(r"1",“ab1d”) 匹配对象,就不再向后匹配了
re.search(r"1",“abcd”) None,把所有的字符串内容扫描一遍
re.search(r"\d+",“ab113d”) 匹配对象113,就不再向后匹配了

\d:匹配数字
\D:匹配非数字
\w:匹配数字和字母(大小写均包含)
\W:匹配非数字和字母
\s:匹配空白(" " \t \r \n)
\S:匹配非空白
\b:匹配边界
.:匹配除回车外的任意字符
+:匹配一个或多个
*:匹配0个或多个
?:匹配0次或1次,非贪婪,表示抑制正则表达式的贪婪性
正则表达式的贪婪性,尽量多匹配。
{a,b}:表示匹配a个到b个
[a-zA-Z]:[]中是或的关系,这里表示匹配一个字母

r是元字符,正则表达式前面加上r,表示正则表达式中的内容不转义
使用正则表达式需导入re包

#字符串类型才可模式匹配,也就是下面例子中"1abc"这个位置的内容必须为字符串格式

import re
print(re.match(r"1","1abc"))    #r"1"是正则表达式,"1abc"是匹配的目标字符串
print(re.match(r"1","1abc").group())

在这里插入图片描述
分组:()小括号中的内容表示分组的内容
group()等价于group(0),表示返回匹配到的整个字符串,group(1)表示返回匹配到的第一个分组

print(re.search(r"a(\d+)c","a11232c").group())
print(re.search(r"a(\d+)c","a11232c").group(1))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值