1.正则函数:
    1.match()
    2.search()
    match,search结果只能匹配一个

2.findall()

findall()最终返回的一个列表,列表中是符合正则条件的所有结果

string = 'hell8oworldhe8llo,h4e,hell,h6ool'
# string.replace()
pattern = re.compile('h.*?l')
# findall()最终返回的一个列表,列表中是符合正则条件的所有结果
res = re.findall(pattern, string)
print(res)

3.split()

参数:1.正则 2.字符串 3.最大分割次数

split() 根据正则将字符串进行分割,返回的是存放分割后字符串的列表

pattern = re.compile('\d+')
res = re.split(pattern, string, 1)
print(res)

4.sub()

参数:  1.正则  2.替换后的字符串 3.大字符串  4.替换次数

sub()函数  用于替换目标字符串中符合正则的字符串,默认替换所有

例1:

pattern = re.compile('\d+')
res = re.sub(pattern, '+', string, 2)
print(res)

例2:

string3 = '<p><h1>社会主义核心价值观<img src="http://www.baidu.comn"></h1></p>'
pattern = re.compile('<.*?>')
res = re.sub(pattern, '', string3)
print(res)

5. findall和search的区别

findall返回的数据是一个列表嵌套元组,元组中放的就是分组数据

string4 = '''<ul><li><a href='/html/tv/hytv/110680.html' title="2017年大陆国产剧《凤囚凰》连载至28">2017年大陆国产剧《凤囚凰》连载至28</a><span><font color=#FF0000>03-05</font></span></li><li><a href='/html/tv/hytv/110723.html' title="2017年香港港台剧《无间道2018(粤语)》连载至16">2017年香港港台剧《无间道2018(粤语)》连载至16</a><span><font color=#FF0000>03-05</font></span></li><li><a href='/html/tv/hytv/110821.html' title="2017年香港港台剧《波士早晨(国语)》连载至15">2017年香港港台剧《波士早晨(国语)》连载至15</a><span><font color=#FF0000>03-05</font></span></li><li><a href='/html/tv/hytv/110825.html' title="2017年香港港台剧《波士早晨(粤语)》连载至43">2017年香港港台剧《波士早晨(粤语)》连载至43</a><span><font color=#FF0000>03-05</font></span></li><li><a href='/html/tv/hytv/110857.html' title="2017年大陆国产剧《我的父亲我的兵》连载至22">2017年大陆国产剧《我的父亲我的兵》连载至22</a><span><font color=#FF0000>03-05</font></span></li><li><a href='/html/tv/hytv/110863.html' title="2017年香港港台剧《三个女人一个因(粤语)》连载至5">2017年香港港台剧《三个女人一个因(粤语)》连载至5</a><span><font color=#FF0000>03-05</font></span></li><li><a href='/html/tv/hytv/110891.html' title="2017年大陆国产剧《人生若如初相见》连载至8">2017年大陆国产剧《人生若如初相见》连载至8</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/110896.html' title="2017年大陆国产剧《利刃出击》连载至7">2017年大陆国产剧《利刃出击》连载至7</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/110897.html' title="2017年大陆国产剧《美好生活》连载至8">2017年大陆国产剧《美好生活》连载至8</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/110895.html' title="2017年大陆国产剧《烈火如歌》连载至6">2017年大陆国产剧《烈火如歌》连载至6</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/110790.html' title="2017年大陆国产剧《谈判官》连载至43">2017年大陆国产剧《谈判官》连载至43</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/109048.html' title="2017年香港港台剧《爱回家之开心速递》连载至268">2017年香港港台剧《爱回家之开心速递》连载至268</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/110820.html' title="2017年大陆国产剧《柜中美人》连载至29">2017年大陆国产剧《柜中美人》连载至29</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/110763.html' title="2017年大陆国产剧《东山晴后雪》连载至28">2017年大陆国产剧《东山晴后雪》连载至28</a><span><font color=#FF0000>03-02</font></span></li><li><a href='/html/tv/hytv/110696.html' title="2017年大陆国产剧《警犬来啦》连载至47">2017年大陆国产剧《警犬来啦》连载至47</a><span><font color=#FF0000>03-01</font></span></li></ul>'''
# 正则中包含了分组信息
pattern = re.compile('''<a href='(.*?)' title="(.*?)"''')
# 返回的数据是一个列表嵌套元组,元组中放的就是分组数据
res = re.findall(pattern, string4)
# print(res)
for r in res:print('链接:{} 名称:{}'.format(r[0], r[1]))

search 返回的是一个对象,和findall结果稍有不同

正则中包含()分组,group获取到的匹配的字符串,可以通过分组的索引,获取对应小分组的信息,分组的索引从1开始

res = re.search(pattern, string4)
if res:# 正则中包含()分组,group获取到的匹配的字符串print(res.group())# 通过分组的索引,获取对应小分组的信息,分组的索引从1开始print(res.group(1))print(res.group(2))
else:print('没有匹配到数据')

完整代码:

# -*- coding:utf-8 -*-
import re
# 1.match()
# 2.search()
"""match,search结果只能匹配一个 """string = 'hell8oworldhe8llo,h4e,hell,h6ool'
# string.replace()
pattern = re.compile('h.*?l')
# findall()最终返回的一个列表,列表中是符合正则条件的所有结果
res = re.findall(pattern, string)
print(res)# split() 根据正则将字符串进行分割,返回的是存放分割后字符串的列表
pattern = re.compile('\d+')
# 1.正则 2.字符串 3.最大分割次数
res = re.split(pattern, string, 1)
print(res)# sub()函数  用于替换目标字符串中符合正则的字符串,默认替换所有
pattern = re.compile('\d+')
# 1.正则  2.替换后的字符串 3.大字符串  4.替换次数
res = re.sub(pattern, '+', string, 2)
print(res)string3 = '<p><h1>社会主义核心价值观<img src="http://www.baidu.comn"></h1></p>'
pattern = re.compile('<.*?>')
res = re.sub(pattern, '', string3)
print(res)string4 = '''<ul><li><a href='/html/tv/hytv/110680.html' title="2017年大陆国产剧《凤囚凰》连载至28">2017年大陆国产剧《凤囚凰》连载至28</a><span><font color=#FF0000>03-05</font></span></li><li><a href='/html/tv/hytv/110723.html' title="2017年香港港台剧《无间道2018(粤语)》连载至16">2017年香港港台剧《无间道2018(粤语)》连载至16</a><span><font color=#FF0000>03-05</font></span></li><li><a href='/html/tv/hytv/110821.html' title="2017年香港港台剧《波士早晨(国语)》连载至15">2017年香港港台剧《波士早晨(国语)》连载至15</a><span><font color=#FF0000>03-05</font></span></li><li><a href='/html/tv/hytv/110825.html' title="2017年香港港台剧《波士早晨(粤语)》连载至43">2017年香港港台剧《波士早晨(粤语)》连载至43</a><span><font color=#FF0000>03-05</font></span></li><li><a href='/html/tv/hytv/110857.html' title="2017年大陆国产剧《我的父亲我的兵》连载至22">2017年大陆国产剧《我的父亲我的兵》连载至22</a><span><font color=#FF0000>03-05</font></span></li><li><a href='/html/tv/hytv/110863.html' title="2017年香港港台剧《三个女人一个因(粤语)》连载至5">2017年香港港台剧《三个女人一个因(粤语)》连载至5</a><span><font color=#FF0000>03-05</font></span></li><li><a href='/html/tv/hytv/110891.html' title="2017年大陆国产剧《人生若如初相见》连载至8">2017年大陆国产剧《人生若如初相见》连载至8</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/110896.html' title="2017年大陆国产剧《利刃出击》连载至7">2017年大陆国产剧《利刃出击》连载至7</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/110897.html' title="2017年大陆国产剧《美好生活》连载至8">2017年大陆国产剧《美好生活》连载至8</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/110895.html' title="2017年大陆国产剧《烈火如歌》连载至6">2017年大陆国产剧《烈火如歌》连载至6</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/110790.html' title="2017年大陆国产剧《谈判官》连载至43">2017年大陆国产剧《谈判官》连载至43</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/109048.html' title="2017年香港港台剧《爱回家之开心速递》连载至268">2017年香港港台剧《爱回家之开心速递》连载至268</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/110820.html' title="2017年大陆国产剧《柜中美人》连载至29">2017年大陆国产剧《柜中美人》连载至29</a><span><font color=#FF0000>03-04</font></span></li><li><a href='/html/tv/hytv/110763.html' title="2017年大陆国产剧《东山晴后雪》连载至28">2017年大陆国产剧《东山晴后雪》连载至28</a><span><font color=#FF0000>03-02</font></span></li><li><a href='/html/tv/hytv/110696.html' title="2017年大陆国产剧《警犬来啦》连载至47">2017年大陆国产剧《警犬来啦》连载至47</a><span><font color=#FF0000>03-01</font></span></li></ul>'''
# 正则中包含了分组信息
pattern = re.compile('''<a href='(.*?)' title="(.*?)"''')
# 返回的数据是一个列表嵌套元组,元组中放的就是分组数据
res = re.findall(pattern, string4)
# print(res)
for r in res:print('链接:{} 名称:{}'.format(r[0], r[1]))# 返回的是一个对象,和findall结果稍有不同
res = re.search(pattern, string4)
if res:# 正则中包含()分组,group获取到的匹配的字符串print(res.group())# 通过分组的索引,获取对应小分组的信息,分组的索引从1开始print(res.group(1))print(res.group(2))
else:print('没有匹配到数据')

运行结果:

正则函数--search/match/findall/sub/split相关推荐

  1. js 中exec、test、match、search、replace、split用法

      前言:exec.test.match.search.replace.split在JS中用的很频繁,在网上看到对这些方法的总结,就转过来了,作个记录. exec:对string进行正则处理,并返回匹 ...

  2. python精确匹配字符串_Python: 字符串搜索和匹配,re.compile() 编译正则表达式字符串,然后使用match() , findall() 或者finditer() 等方法...

    1. 使用find()方法 >>> text = 'yeah, but no, but yeah, but no, but yeah' >>> text.find( ...

  3. js正则函数match、exec、test、search、replace、split使用集合

    match 方法 使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回. stringObj.match(rgExp) 参数 stringObj 必选项.对其进行查找的 String 对 ...

  4. Python中re的match、search、findall、finditer区别正则

    20210728 search 得到索引范围 原文地址: http://blog.csdn.net/djskl/article/details/44357389 这四个方法是从某个字符串中寻找特定子串 ...

  5. python正则表达式之match,search,findall区别

    from __future__ import print_function from __future__ import division from __future__ import absolut ...

  6. match、search、findall用法区别

    match:从字符串首字母开始匹配,如果匹配成功,则返回Match对象,反之返回空.若想获取返回Match对象转为值,则用group()方法 search:从这个整个字符串匹配,如果匹配成功,则返回M ...

  7. python中re模块的match、search、findall、sub方法使用

    正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字 ...

  8. Python:正则表达式match、search、findall、finditer区别,group()、groups()与group(index)的区别

    1.match re.match(pattern, string[, flags]) 从首字母开始开始匹配,string如果包含pattern子串,则匹配成功,返回Match对象,失败则返回None, ...

  9. javascript学习之支持正则表达式的String对象的方法的使用 search match replace split

    ------老子是要成为前端工程师的男人!------

最新文章

  1. CF476D Dreamoon and Sets (数学/思维)
  2. winform combobox选择后_后驱车真的比前驱车更加高级吗?涨知识了!
  3. 【渝粤教育】国家开放大学2018年春季 8622-22T社会调查研究与方法 参考试题
  4. 利用PHP扩展Taint找出网站的潜在安全漏洞实践
  5. 项目案例:在线拍卖系统_冀拓公司在张家口开展尾矿库在线监测监控系统 建设项目...
  6. 7本书告诉你,为什么拯救“流浪地球”的是人类,不是AI?
  7. Likecloud-吃、吃、吃
  8. 复杂度及圈复杂介绍介绍
  9. oracle erp整体流程,图解ORACLE ERP流程:轻松掌握ERP技术概念
  10. 25匹马选出最快的3匹马
  11. mysql 关闭防火墙 命令_CentOS7关闭防火墙命令
  12. 练习java文档ZoneId
  13. 吴洪声十问戴跃: 域名圈巴菲特是如何炼成的?
  14. 【论文】文本相似度计算方法综述
  15. python 如何绘制分叉图
  16. 差钱吗?周杰伦线上演唱会没关打赏惹争议,看看同时直播的腾格尔
  17. 女友在餐厅当传菜员,心疼她嗓子给她写了个语音转文字页面
  18. 注册表关闭命令提示符_如何从命令提示符下编辑Windows注册表
  19. 中国养蚕及深加工市场运行走势与盈利价值分析报告2022-2028年
  20. 易基因:精原干细胞移植后出生小鼠子代中的精子DNA甲基化变化机制|新研究

热门文章

  1. 论邮政有多硬核!邮车意外滑落悬崖,快递员的行为让人动容!
  2. 学人工智能可以干什么?AI岗位有哪些?
  3. 杨超越是如何实现从全网嘲到全网夸的?营销圈来告诉你!
  4. pdf根据书签创建目录结构(方便查看各个主题的页码分布)pdf_xchange
  5. 中班音乐活动计算机反思,中班音乐优质教案《计算器》含反思
  6. 20050714日记
  7. ObjectArx开发笔记(二)---命令注册、表结构
  8. kafka Process ‘command ‘/jdk1.8.0_77/jre/bin/java.exe finished with non-zero exit value 1
  9. 开发技术指南 | 最全 Substrate 与 Polkadot 技术文档、教程、课程
  10. 使用Bundle校验接口入参