关于正则表达式的一些内容

本文介绍了Python中re模块的常用函数findall,search以及sub在处理字符串时的应用,包括查找所有匹配、提取首项匹配和替换内容。并通过实例演示了如何在网页内容中提取链接和进行翻页操作。
摘要由CSDN通过智能技术生成

导入

import re

from re import*

from re import findall,search,sub,S

a08e08fa78e344a199d3a5dedecbc5e3.jpg

0d9b80a590b645e184be477a83cd7c7a.jpg

 常用符号

 常用符号:点号,星号,问号与括号,使用\d+匹配纯数字

 

.:匹配任意字符(类似于占位符),除换行符\n

 

*:匹配前一个字符0次或无限次

 

?:匹配前一个字符0或1次

 

.*:贪心算法

 

.*?:非贪心算法

如c=re.findall('xx.*?xx',code)结果—>['xxlovexx']

 

(.*?):xx(.*?)xx—>['love']

 

():括号内的数据作为结果返回

常用方法

1.findall

匹配所有符号规律的内容,返回包含结果的列表

如:c=re.findall('xx.*?xx',code)

           结果—>['xxlovexx']

       c=re.findall('xx(.*?)xx555xx('.*?')xx',code2)

           结果是提取出的第二个内容

       c=re.findall('(\d+)',code)

           结果提取出code里纯数字

2.search

匹配并提取第一个符号规律的内容,返回一个正则表达式对象(object)

如:c=re.search('xx(.*?)xx555xx('.*?')xx',code).group(2)

           结果为提取出的第二个内容

3.sub

替换符合规律的内容,返回替换后的值

如:1235555555123

        c=re.sub('123(.*?)123','123789123',code)

          结果123与123之间的内容被替换成789即123789123

举个学习小例

(灵活运用findall与search,获取部分信息时可以用先大后小的方法)

text.txt网页文件如下:

cf06ace30e5a48eaa6172c97ab4bf526.jpg

 用search遍历查找首要符合规律的内容(提升效率和节省时间),而findall遍历查找所有符合情况的内容 a1e11545c10748ea9da1e73ad85c2ff9.jpg

 b52e6dfd87f0410b96d5f37d3ea373e0.jpg

 将href后的链接依次遍历出来

d555d452d7ed48e7bfccf3b358637761.jpg

ebe2dd2b2f4c4c6abbe4e5cd3a5156a7.jpg 

 在<ul></ul>里(大方向)找出链接里的部分内容(小方向),可用">(.*?)</a>可获取这部分

22e759c0261a4422b712a705d9bcada0.jpg

0ffb814e29f4495b8db8e68ce9f63738.jpg 

 利用sub进行网页翻页,替换页数

a7d9048247a94bb69c7001107d5fc6b6.jpg 

69588d696e5842a993abc25908348ae0.jpg 


推荐网站:http://www.jikexueyuan.com

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值