python入门教程-re模块使用[代码笔记]

示例代码

import re

# findall: 匹配字符串中所有符合正则的内容
lst = re.findall(r"\d+", "移动电话是:10086, 联通电话是:10010")
print(lst)

# finditer:匹配字符串中所有内容[返回的迭代器],从迭代器中拿到内容需要.group()
it = re.finditer(r"\d+", "移动电话是:10086, 联通电话是:10010")
for i in it:
    print(i.group())

# search,找到一个结果就返回,返回的结果是match对象,拿数据需要.group()
s = re.search(r"\d+", "移动电话是:10086, 联通电话是:10010")
print(s.group())

# match是从头开始匹配的
s = re.match(r"\d+", "10086, 联通电话是:10010")
print(s.group())


# 预加载正则表达式
obj = re.compile(r"\d+")

ret = obj.finditer("移动电话是:10086, 联通电话是:10010")
for it in ret:
    print(it.group())

ret = obj.findall("我的电话号码是100000000")
print(ret)

s = """
<div class='ming'><span id='1'>小明</span></div>
<div class='hong'><span id='2'>小红</span></div>
<div class='wang'><span id='3'>小王</span></div>
<div class='zhang'><span id='4'>小张</span></div>
<div class='li'><span id='5'>小李</span></div>
"""

# (?P<分组名字>正则) 可以单独从正则匹配的内容中进一步的提取需要的内容
obj = re.compile(r"<div class='(?P<class>.*?)'><span id='(?P<id>\d+)'>(?P<span>.*?)</span></div>", re.S) #re.S:让.能匹配换行符

result = obj.finditer(s)
for it in result:
    print(it.group("class"))
    print(it.group("id"))
    print(it.group("span"))

运行结果

['10086', '10010']
10086
10010
10086
10086
10086
10010
['100000000']
ming
1
小明
hong
2
小红
wang
3
小王
zhang
4
小张
li
5
小李
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容