Python的re模块主要是正则表达式的操作函数。我们看看主要的几个函数。
首先我们要引入re模块。
import re
compile将包含正则表达式字符串创建为对象。
search在目标字符串中按照给定的正则表达式匹配结果
match在字符串的开始处匹配指定正则表达式
split根据正则表达式分割字符串
findall列举出字符串中符合指定正则表达式的所有匹配项
sub将字符串中所有符合指定正则表达式的项用另一个项代替
escape将字符串中所有特殊正则表达式字符转义
我们通过如下例子,了解下这几个函数。
compile,search,match函数,
smod= re.compile(\'大[汉唐宋明]\')
if re.search(smod,\'大宋\'):
print(\'匹配正确%s\' %\'大宋\')
if re.search(smod,\'大梁\') != True:
print(\'匹配错误%s\' %\'大梁\')
ming= re.match(smod,\'大唐\')
print(ming)
输出
匹配正确大宋
匹配错误大梁
<_sre.SRE_Match ; span=(0, 2), match=\'大唐\'>
split函数
content = \'劝君莫惜金缕衣,劝君惜取少年时。花开堪折直须折,莫待无花空折枝。\'
contentArray=re.split(\'[,。]\',content)
print(contentArray)
输出
[\'劝君莫惜金缕衣,劝君惜取少年时\', \'花开堪折直须折\', \'莫待无花空折枝\', \'\']
字符串中有逗号和句号,为了分割为数组,按照逗号和句号分割。
上面的分割中,也可以指定分割的次数,比如,
content2=\'天地英雄气,千秋尚凛然。势分三足鼎,业复五铢钱。\'
contentArray2= re.split(\'[,。]\',content2,maxsplit=1)
contentArray3 = re.split(\'[,。]\',content2,maxsplit=4)
print(contentArray2)
print(contentArray3)
输出
[\'天地英雄气\', \'千秋尚凛然。势分三足鼎,业复五铢钱。\']
[\'天地英雄气\', \'千秋尚凛然\', \'势分三足鼎\', \'业复五铢钱\', \'\']
findall函数
pat=\'[a-z]+\'
text =\'how are you? fine! thank you. and you?\'
result = re.findall(pat,text)
print(result)
输出
[\'how\', \'are\', \'you\', \'fine\', \'thank\', \'you\', \'and\', \'you\']
将所有符合要求的项都找出来。
sub函数
patsub=\'{name}\'
txtsub=\'Hello {name}\'
txt = re.sub(patsub,\'王维\',txtsub)
print(txt)
输出
Hello 王维
这个其实就是我们平时使用的字符串替换的一个高级使用,比如我们要把一篇文章中\'我\'替换为\'他\',就是一个字符替换为另一个字符。
这里是按照正则表达式来替换。
escape函数
escape = re.escape(\'得相能开国,生儿不象贤。凄凉蜀故妓,来舞魏宫前。\')
print(escape)
输出
\\得\\相\\能\\开\\国\\,\\生\\儿\\不\\象\\贤\\。\\凄\\凉\\蜀\\故\\妓\\,\\来\\舞\\魏\\宫\\前\\。
这是将每个字符都转义了。
工程文件下载:https://download.csdn.net/download/yysyangyangyangshan/10865919
继续阅读与本文标签相同的文章
-
2019云栖大会 | 究竟哪款NoSQL数据库最适合你?
2026-05-18栏目: 教程
-
CNCF 宣布成立应用交付领域小组,正式开启云原生应用时代
2026-05-18栏目: 教程
-
蚂蚁金服体验科技精选1-3期
2026-05-18栏目: 教程
-
9月新规1天顶平时1个月的收入,消费再少也有返利? 再创日赚万元的日子迎接双11
2026-05-18栏目: 教程
-
《Apache Kafka实战》| 每日读本书
2026-05-18栏目: 教程
