Python学习16 正则表达式2 re模块

re 模块

re 模块:
Python的 re 模块实现了正则表达式处理的功能。
导入re模块后,使用findall、search函数可以进行匹配
在这里插入图片描述

查找:match和search

多个匹配上的,也只会返回第一个匹配上的
re.match():
需要特别注意的是,这个方法并不是完全匹配。它仅仅决定在字符串开始的位置是否匹配。所以当pattern结束时若还有剩余字符,仍然视为成功。想要完全匹配,可以在表达式末尾加上边界匹配符’$’全一样,否则为None

在这里插入图片描述

查找:finditer 和 findall 和 fullmatch

re.finditer()

下标从0开始
在这里插入图片描述

re.findall()

o\s+:匹配o和后面的一个或多个空白字符
在这里插入图片描述

re.fullmatch()

h.*d:h和d之间0或多个除\n之外的任意字符
在这里插入图片描述

分组: group()和groupdict()

group()

在这里插入图片描述

re.groupdict()

在匹配时使用“?P<>”,获得匹配结果后调用.groupdict()方法,获得字典类型的结果
在这里插入图片描述

替换:re.sub()

在这里插入图片描述
把字符串里的数字变成两倍:
在这里插入图片描述

生成一个正则表达式对象: re.compile()

在这里插入图片描述

正则表达式规则

# 1.  数字和字母都表示它本身
print(re.search(r'x', 'hello xyz'))      # <re.Match object; span=(6, 7), match='x'>
print(re.search(r'5', '1a3b56c8d'))  # <re.Match object; span=(4, 5), match='5'>

# 2.  很多字母前面添加 \ 会有特殊含义。
print(re.search(r'd', 'good'))             # <re.Match object; span=(3, 4), match='d'>
print(re.search(r'\d', 'good'))           # None
print(re.search(r'\d', 'go1234od'))  # <re.Match object; span=(4, 5), match='1'>


# 3.大多数标点符号 都有特殊含义。如果想要使用标点符号,需要加 \ 。
print(re.search(r'+', '1+2=3'))       # re.error:
print(re.search(r'\+', '1+2=3'))     # <re.Match object; span=(1, 2), match='+'>

案例: 判断是否是数字

原始:
在这里插入图片描述
正则表达式:
在这里插入图片描述

案例:提取字符串中内容

在这里插入图片描述

案例:QQ判断

QQ号码

在这里插入图片描述

QQ用户名1

在这里插入图片描述

QQ用户名2

\w:匹配字母数字下划线
在这里插入图片描述

案例总结

在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DQ_CODING

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值