大话 Python:python 基础巩固 -- 灵活运用正则表达式完成数据提取与筛选

python 的 re 模块提供了很多内置的函数来操作正则表达式,掌握正则表达式以及这些函数的使用会更大的提高工作效率,因为大多时候都是在和字符串打交道。并且 re 模块在使用这些函数来操作正则表达式的时候都可以指定不同类型的模式。比如:re 内置模块的 compile(pattern, flags=0) 函数中的 flags 参数就是用于指定匹配模式的,默认情况下各个内置函数的模式都等于零就是不指定模式。

1re.I 使匹配对大小写不敏感

2re.L 做本地化识别(locale-aware)匹配

3re.M 多行匹配,影响 ^ 和 $

4re.S 使 . 匹配包括换行在内的所有字符

5re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.

6re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。

3、re 模块函数匹配正则表达式操作字符串

compile(pattern, flags=0) 对匹配的正则表达式进行预编译,这种模式有利于后续对同一种匹配规则的复用,当然也可以不进行预编译使用 re 模块的内置函数直接进行正则表达式的使用。

findall(pattern, string, flags=0) 找到所有的匹配以后的数据,并且使用列表的形式返回匹配后的数据。

1# 导入 re 内置模块

2import re

3# 定义多行字符串 sc

4sc = ‘’'str1

5str2

6str3’‘’

7

8# 使用 compile() 函数进行正则表达式对预编译

9# 其中正则表达式为<.+>参照元字符表,表达式中<.>表示匹配任意字符(不包括换行符)

10# <+> 表示匹配前一个元字符1到多次,组合<.+>就表示匹配所有字符不包括换行符

11pattern = re.compile(“.+”)

12# 正则表达对象调用 findall() 函数返回列表

13print pattern.findall(sc)

14# 打印返回列表,结果应该是下面列表

15[‘str1’, ‘str2’, ‘str3’]

split(pattern, string, maxsplit=0, flags=0) 按照正则表达式匹配的数据为切割点,对原来的数据进行切分并返回一个数据列表。

1# 定义原始字符串

2sc = ‘’'strw 1 laow

3 strd 2 laow

4 strc 3 laow’‘’

5# 按照数字切分

6print re.split(‘\d+’, sc)

7# 打印结果

8['strw ', ’ laow\n strd ', ’ laow\n strc ‘, ’ laow’]

sub(pattern, repl, string, count=0, flags=0) 匹配正则表达式的字符串并且替换成指定的字符串后返回。

1# 导入内置模块 re

2import re

3# 定义原始字符串

4sc = “the sum of 6 and 9 is [6+9].”

5# 将[6+9]替换为15

6print re.sub(‘[6+9]’, ‘15’, sc)

7# 打印结果

8the sum of 7 and 9 is 15.

search(pattern, string, flags=0) 查找正则表达式内容。

1# 导入内置模块 re

2import re

3# 定义原始数据

4sc = ‘’'strw 1 laow

5 strd 2 laow

6 strc 3 laow’‘’

在这里插入图片描述

感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
img

升又不知道该从何学起的朋友,同时减轻大家的负担。**

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
[外链图片转存中…(img-P0MDcoFa-1711011333915)]

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值