python中如何使用正则表达式提取数据.docx

python中如何使用正则表达式提取数据.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

python中如何使用正则表达式提取数据

字符串对象的split方法只适用于简单的字符串分割。有时,你需要更加灵活的字符串切割。

比如,我们需要从下面字符串中提取武将的名字。

names=关羽;张飞,赵云,马超,黄忠李逵

我们发现这些名字之间,有的是分号隔开,有的是逗号隔开,有的是空格隔开,而且分割符号周围还有不定数量的空格

这时,可以使用正则表达式里面的split方法:

importre

names=关羽;张飞,赵云,马超,黄忠李逵

namelist=re.split(r[;,\s]\s*,names)

print(namelist)

正则表达式[;,\s]\s*指定了,分割符为分号、逗号、空格里面的任意一种均可,并且该符号周围可以有不定数量的空格。

字符串替换

匹配模式替换

字符串对象的replace方法只适应于简单的替换。有时,你需要更加灵活的字符串替换。

比如,我们需要在下面这段文本中所有的链接中找到所以/avxxxxxx/这种以/av开头,后面接一串数字,这种模式的字符串。

然后,这些字符串全部替换为/cn345677/。

names=

下面是这学期要学习的课程:

ahref=/video/ap=1target=_blank点击这里,边看视频讲解,边学习以下内容/a

这节讲的是牛顿第2运动定律

ahref=/video/ap=125target=_blank点击这里,边看视频讲解,边学习以下内容/a

这节讲的是毕达哥拉斯公式

ahref=/video/ap=33target=_blank点击这里,边看视频讲解,边学习以下内容/a

这节讲的是切割磁力线

被替换的内容不是固定的,所以没法用字符串的replace方法。

这时,可以使用正则表达式里面的sub方法:

importre

names=

下面是这学期要学习的课程:

ahref=/video/ap=1target=_blank点击这里,边看视频讲解,边学习以下内容/a

这节讲的是牛顿第2运动定律

ahref=/video/ap=125target=_blank点击这里,边看视频讲解,边学习以下内容/a

这节讲的是毕达哥拉斯公式

ahref=/video/ap=33target=_blank点击这里,边看视频讲解,边学习以下内容/a

这节讲的是切割磁力线

newStr=re.sub(r/av\d+/,/cn345677/,names)

print(newStr)

sub方法就是也是替换字符串,但是被替换的内容用正则表达式来表示符合特征的所有字符串。

比如,这里就是第一个参数/av\d+/这个正则表达式,表示以/av开头,后面是一串数字,再以/结尾的这种特征的字符串,是需要被替换的。

第二个参数,这里是/cn345677/这个字符串,表示用什么来替换。

第三个参数是源字符串。

指定替换函数

刚才的例子中,我们用来替换的是一个固定的字符串/cn345677/。

如果,我们要求,替换后的内容的是原来的数字+6,比如/a替换为/a。

怎么办?

这种更加复杂的替换,我们可以把sub的第2个参数指定为一个函数,该函数的返回值,就是用来替换的字符串。

如下

importre

names=

下面是这学期要学习的课程:

ahref=/video/ap=1target=_blank点击这里,边看视频讲解,边学习以下内容/a

这节讲的是牛顿第2运动定律

ahref=/video/ap=125target=_blank点击这里,边看视频讲解,边学习以下内容/a

这节讲的是毕达哥拉斯公式

ahref=/video/ap=33target=_blank点击这里,边看视频讲解,边学习以下内容/a

这节讲的是切割磁力线

#替换函数,参数是Match对象

defsubFunc(match):

#Match对象的group(0)返回的是整个匹配上的字符串

src=match.group(0)

#M

文档评论(0)

183****9196 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档