(6.13)re模块使用-split、 sub 和subn

文章目录

1.split

  • re模块中的split函数用于将字符串按与正则表达式匹配的子串分割。
    re.split函数的语法格式如下:
re.split(pattern, string, maxsplit=0, flags=0)

其中,
pattern是正则表达式;
string是要分割的字符串;
maxsplit是最大分割次数,默认为0表示不限制分割次数;flags与re.match等函数中的flags参数含义相同。
  • eg:re.split函数使用示例。
import re
str='sno:1810101,name:李晓明,age:19,major:计算机'
rlt=re.split(r'\W+', str)## 以非单词字符进行分割,包括:,:
print(rlt)

结果:
['sno', '1810101', 'name', '李晓明', 'age', '19', 'major', '计算机']

2.sub

  • re模块的sub函数用于替换字符串中与正则表达式匹配的子串。
    re.sub函数的语法格式为:
re.sub(pattern, repl, string, count=0, flags=0)

其中,pattern是正则表达式;
repl是要将匹配子串替换成的字符串;
string是待做替换操作的字符串;
count是最大替换次数,默认为0表示
不限制替换次数(即将所有符合正则表达式的子串都替换成repl);
flags与re.match等函数中的flags参数含义相同。
  • eg:re.sub函数使用示例。
import re
html='''<h3 class="c-title">
<a href="http://edu.people.com.cn/n1/2018/0905/c367001-30274290.html">
		<em>南开大学</em>校长曹雪涛寄语新生</a>
</h3>'''
content=re.sub(r'<[^<]*>', '', html)
content=content.strip() #去除字符串content中两边的空白符
print('去除HTML标记后的内容为: ', content)

结果:
去除HTML标记后的内容为: 南开大学校长曹雪涛寄语新生

说明:
第5行代码中,“<[^<]*>”表示匹配由一对尖括号括起来
的字符串,通过“[^<] ”指定匹配的字符串中不能包含左
尖括号“<”。

3.subn

  • re模块中的subn函数与re.sub函数功能完全相同,只是re.subn函数会以一个元组的形式同时返回替换匹配子串后得到的新字符串和替换的
    次数。
    re.subn函数的语法格式为:
re.subn(pattern, repl, string, count=0, flags=0)
各参数含义与re.sub函数相同。
  • eg:re.subn函数使用示例。
import re
html='''<h3 class="c-title">
<a href="http://edu.people.com.cn/n1/2018/0905/c367001-30274290.html">
		<em>南开大学</em>校长曹雪涛寄语新生</a>
</h3>'''
content=re.subn(r'<[^<]*>', '', html)
print('去除HTML标记后的内容为: ', content)

结果:
去除HTML标记后的内容为: ('\n 南开大学校长曹雪涛寄语新生\n', 6)

6:代表做了6次替换
根据提供的引用内容,可以看出6.12和6.13是关于赫夫曼编码的编码和解码算法。下面是对这两个算法的简要介绍: 6.12 赫夫曼编码算法 赫夫曼编码是一种可变长度编码,用于将字符编码为比特串。它是一种前缀编码,即没有任何一个字符的编码是另一个字符编码的前缀。这种编码方式可以有效地压缩数据,因为出现频率高的字符可以用较短的编码表示,而出现频率低的字符可以用较长的编码表示。 赫夫曼编码算法的基本思想是:根据字符出现的频率构建一棵赫夫曼树,然后对每个字符进行编码。具体步骤如下: 1. 统计每个字符出现的频率,并将它们存储在一个频率表中。 2. 将频率表中的每个字符作为一个叶子节点,构建一棵赫夫曼树。构建赫夫曼树的方法是:将频率最小的两个节点合并成一个新节点,新节点的权值为两个节点的权值之和。重复这个过程,直到所有节点都被合并成一个根节点。 3. 对赫夫曼树进行遍历,对每个字符生成一个编码。从根节点开始,如果向左走就在编码的末尾添加一个0,如果向右走就在编码的末尾添加一个1。当遍历到一个叶子节点时,就得到了该字符的编码。 4. 将每个字符的编码存储在一个编码表中。 6.13 赫夫曼解码算法 赫夫曼解码算法的基本思想是:根据赫夫曼编码表和赫夫曼树,将比特串解码为字符。具体步骤如下: 1. 从比特串的开头开始,沿着赫夫曼树向下走,直到遇到一个叶子节点。 2. 如果遇到的是一个叶子节点,就将该节点对应的字符输出,并返回到根节点。 3. 如果遇到的是一个内部节点,就根据比特串的下一位向左或向右走,重复步骤1和步骤2,直到遇到一个叶子节点。 --相关问题--: 1. 赫夫曼编码有哪些应用场景? 2. 如何实现赫夫曼编
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

喜欢打篮球的普通人

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值