正则表达式

视频:正则表达式30分钟入门40分钟进阶(绝对能学会)【二倍速观看】
测试网站:正则表达式在线测试【测试 + 可视化】
内容回忆:参考手册
最好的方法:询问 ChatGPT

import re

# 基础用法
result = re.findall(r"\d+", "123我是筱团465啦啦啦789")
print(result)
# ['123', '465', '789']

# 迭代器,常用用法
result = re.finditer(r"\d+", "123我是筱团465啦啦啦789")
for item in result:
    print(item.group())
# 123
# 465
# 789

# 只搜索第一个匹配项
result = re.search(r"\d+", "123我是筱团465啦啦啦789")
print(result.group())
# 123

# 只匹配从头开始能完全匹配的一个匹配项
result = re.match(r"\d+", "123我是筱团465啦啦啦789")
print(result.group())
# 123

# 预加载
obj = re.compile(r"\d+")
for i in data:
    result = obj.finditer(content)

# 实操
# 想要提取数据必须用小括号括起来,可以单独起名字
# (?P<名字>正则表达式)
# 提取数据的时候,需要 group("名字")
data = """
<div class='西游记'><span id='10010'>中国联通</span></div>
<div class='西游记'><span id='10086'>中国移动</span></div>
"""
obj = re.compile(r"<span id='(?P<id>\d+)'>(?P<name>.*?)</span>")
result = obj.finditer(data)
for item in result:
    id = item.group("id")
    print(id)
    name = item.group("name")
    print(name)
# 10010
# 中国联通
# 10086
# 中国移动
posted @ 2023-01-31 22:55  筱团  阅读(23)  评论(0编辑  收藏  举报