Python正则表达re模块findall()和search()函数复习

微信扫一扫,分享到朋友圈

Python正则表达re模块findall()和search()函数复习
收藏 00
# -*- coding: utf-8 -*-
import re

text = '梦见蛇是什么意思'
#使用正则去搜索
r = re.search(r'什么',text)
print(r)
#执行结果<re.Match object; span=(4, 6), match='什么'>

r1 = re.search(r'什么啊',text)
print(r1)
#总结 如果能搜索就返回一个对象,如果无法搜索就返回None

r2 = re.search('什么|梦见',text)
if r is None:
    print('搜索不到')
else:
    print(r.group())
#执行结果 什么
#只要匹配一个就返回

#findall返回的是一个列表
f = re.findall('',text)
print(f)
#执行结果 ['', '', '', '', '', '', '', '', '']
f1 = re.findall('梦见|什么',text)
print(f1)
#执行结果 ['梦见', '什么']
f2 = re.findall('什么都没有',text)
print(f2)
#执行结果 []
#匹配搜索结果
b_search = '百度为您找到相关结果约100,000,000个'
s = re.findall(r'[0-9,]+',b_search)
print(s)
#不匹配数字
s1 = re.findall(r'[^0-9,]+',b_search)
print(s1)
#贪婪模式和非贪婪模式
html = '<a href="https://www.99zyku.com“>seo技巧</a>'
r =re.findall(r'<a href="(.*)“>(.*)</a>',html)
print(r)
#执行结果 [('https://www.99zyku.com', 'seo技巧')]

html1 = '<a href="https://www.99zyku.com" target="_blank">seo技巧</a>'
r1 =re.findall(r'<a href="(.*)">(.*)</a>',html1)
print(r1)
#执行结果 贪婪模式 [('https://www.99zyku.com“ target="_blank', 'seo技巧')]
html2 = '<a href="https://www.99zyku.com" target="_blank">seo技巧</a><a></a>'
r2 =re.findall(r'<a href="(.*?)".+?>(.*?)</a>',html2)
print(r2)
#.* .+ 后面加?可以让贪婪模式变成非贪婪模式

#?:
r3 = re.findall(r'(?:<a href="(.*?)".+?>(?:.*?)</a>)',html2)
print(r3)
#执行结果 只匹配href的分组 ['https://www.99zyku.com']

 

一个热爱互联网的咸鱼

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片

热门

    抱歉,30天内未发布文章!
返回顶部