python正则表达式re

函数说明
finditer匹配字符串中所有的内容 返回的是迭代器
findall匹配字符串中所有的符合正则的内容
search找到一个结果就返回。拿数据需要.group()
match是从头开始匹配, 相当于^
compile预加载正则表达式

(?P<组名>正则) : 可以单独从正则匹配的内容中进行一部提取内容

# 正则表达式re
import re

# findall  匹配字符串中所有的符合正则的内容
lst = re.findall(r"\d+", "我的手机号是10010,他的手机号是10086")
print(lst)
print()
# finditer: 匹配字符串中所有的内容  返回的是迭代器
lst = re.finditer(r"\d+", "我的手机号是10010,他的手机号是10086")
for i in lst:
    print(i.group())

# search:找到一个结果就返回。返回的结果是match对象, 拿数据需要.group()
s = re.search(r"\d+", "我的手机号是10010,他的手机号是10086")
print()
print(s.group())

# match 是从头开始匹配, 相当于^
s = re.match(r"\d+", "10010,他的手机号是10086")
print()
print(s.group())

# 预加载正则表达式
obj = re.compile(r"\d+")
drt = obj.finditer("我的手机号是10010,他的手机号是10086")
for it in drt:
    print(it.group())

print()

lxm = """
    <div class="cla1"><span id = "1">猪八戒</span></div>
    <div class="cla2"><span id = "2">送悟空</span></div>
    <div class="cla3"><span id = "3">唐僧</span></div>
    <div class="cla4"><span id = "4">二郎神</span></div>
    <div class="cla5"><span id = "5">红孩儿</span></div>
"""

# obj_1 = re.compile(r'<div class=".*?"><span id = "\d+">.*?</span></div>', re.S)  # re.S :让点能匹配换行符
# (?P<组名>正则) : 可以单独从正则匹配的内容中进行一部提取内容 
obj_1 = re.compile(r'<div class=".*?"><span id = "(?P<id>\d+)">(?P<name>.*?)</span></div>', re.S)  # re.S :让点能匹配换行符
ret = obj_1.finditer(lxm)
for itt in ret:
    print(itt.group("id"))   # (?P<组名>正则) : (?P<id>\d+)
    print(itt.group("name"))   # (?P<组名>正则) : (?P<name>.*?)


输出结果:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

杳杳明明

您的鼓励就是我的动力!

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

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

打赏作者

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

抵扣说明:

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

余额充值