少说话多写代码之Python学习065——标准模块(re模块)

栏目: Python · 发布时间: 7年前

内容简介:Python的re模块主要是正则表达式的操作函数。我们看看主要的几个函数。首先我们要引入re模块。compile将包含正则表达式字符串创建为对象。

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 object; 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


以上所述就是小编给大家介绍的《少说话多写代码之Python学习065——标准模块(re模块)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java核心技术·卷 I(原书第10版)

Java核心技术·卷 I(原书第10版)

[美] 凯.S.霍斯特曼(Cay S. Horstmann) / 周立新 等 / 机械工业出版社 / 2016-9 / CNY 119.00

Java领域最有影响力和价值的著作之一,由拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与《Java编程思想》齐名,10余年全球畅销不衰,广受好评。第10版根据Java SE 8全面更新,同时修正了第9版中的不足,系统全面讲解了Java语言的核 心概念、语法、重要特性和开发方法,包含大量案例,实践性强。 一直以来,《Java核心技术》都被认为是面向高级程序员的经典教......一起来看看 《Java核心技术·卷 I(原书第10版)》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具