【Python3 爬虫】09_正则表达式(re.math()、re.search()、re.sub()、全局匹配函数)

re.math()函数

从源字符串的起始位置匹配一个模式

语法:re.match(pattern, string, flag)

第一个参数代表对应的正则表达式,第二个参数代表对应的源字符,第三个参数是可选参数,代表对应的标志位,可以放模式修正符等信息

#-*- codingn:utf-8 -*-
import re
string = "ipythonajsoasaoso"
pattern = ".python."
result = re.match(pattern, string)
result1 = re.match(pattern, string).span()
print("结果1:%s" % result)  
print(result1)  # (0,8)

re.search()函数

扫描整个字符串进行匹配
语法:re.search(pattern, string, flag)

#-*- codingn:utf-8 -*-
import re
string = "helloipythonajsoasaoso"
pattern = ".python."
result1 = re.match(pattern, string)
result2 = re.search(pattern, string)
print("结果1:%s" % result1)
print("结果2:%s" % result2)

全局匹配函数

将符合模式的全部内容都匹配出来

(1)使用re.compile()对正则表达式进行预编译
(2)编译后使用findall()根据正则表达式从原字符串中将匹配的解决全部找出

#-*- codingn:utf-8 -*-
import re
string = "helloipythonajsoasaospythono"
pattern = re.compile(".python.") #预编译
result = pattern.findall(string) #找出符合模式的所有结果
print("结果1:%s" % result)

re.sub()函数

根据正则表达式来实现替换某些字符串
re.sub(pattern, rep, string, max)
第一个参数对应的正则表达式,第二个参数为要替换成的字符串,第三个参数为源字符串,第四个参数为可选项,代表最多替换的次数,如果忽略不写,则会将符合模式的结果全部替换。

#-*- codingn:utf-8 -*-
import re
string = "bnsdBBjsdkBBlsBBdkBBs"
pattern = "BB"
result1 = re.sub(pattern,"**",string)  #全部替换
result2 = re.sub(pattern,"**",string,1)  #最多替换1次
result3 = re.sub(pattern,"**",string,2)  #最多替换2次

print("结果1:%s" % result1)
print("结果2:%s" % result2)
print("结果3:%s" % result3)

原文地址:https://www.cnblogs.com/OliverQin/p/8657540.html

时间: 2024-08-27 22:48:46

【Python3 爬虫】09_正则表达式(re.math()、re.search()、re.sub()、全局匹配函数)的相关文章

python3爬虫之入门和正则表达式

前面的python3入门系列基本上也对python入了门,从这章起就开始介绍下python的爬虫教程,拿出来给大家分享:爬虫说的简单,就是去抓取网路的数据进行分析处理:这章主要入门,了解几个爬虫的小测试,以及对爬虫用到的工具介绍,比如集合,队列,正则表达式: 用python抓取指定页面: 代码如下: import urllib.request url= "http://www.baidu.com" data = urllib.request.urlopen(url).read()# d

python3网络爬虫学习——正则表达式

正则表达式是处理字符串的强大工具,有着自己的语法结构. 1.实例引入 可以使用开源中国的 http://tool.oschina.net/regex# 可以看到有许多匹配项,正则表达式匹配就是按照一定规则将特定的文本提取出来.比如电子邮件开头是一段字符串,然后是一个@符号,最后是某个域名,这是由特定的格式组成的.至于匹配的具体规则,可以参见这个博客https://www.jianshu.com/p/773c32dcd254     一些规则的汇总可以看这个博主https://www.cnblog

正则表达式 Date Math

正则表达式,又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 基础 复习字符串操作 search:查找  忽略大小写  判断浏览器类型 substring:查找子字符串 charAt:获取某个字符 split:分割字符串 alert(str.substring(

Python3 爬虫(八) -- BeautifulSoup之再次爬取CSDN博文

序 我的Python3爬虫(五)博文使用utllib基本函数以及正则表达式技术实现了爬取csdn全部博文信息的任务. 链接:Python3 爬虫(五) -- 单线程爬取我的CSDN全部博文 上一篇,我们学习了BeautifulSoup这样一个优秀的Python库,必须有效利用起来.那么我们就利用BeautifulSoup4重新实现一次爬取csdn博文的任务. 由于我修改了博客配置,首页主题换了一下,我们基于新的主题查看网页,如下图所示: 同样的,确认要提取的信息,以及博文总页数. 分析网页源码

python3爬虫(4)各种网站视频下载方法

python3爬虫(4)各种网站视频下载方法原创H-KING 最后发布于2019-01-09 11:06:23 阅读数 13608 收藏展开理论上来讲只要是网上(浏览器)能看到图片,音频,视频,都能够下载下来,然而实际操作的时候也是有一定难度和技术的,这篇文章主要讲述各个网站视频资源如何下载. B站视频页面链接: https://www.bilibili.com/bangumi/play/ep118490?from=search&seid=7943855106424547918 首先我们用万能下

python3 爬虫小例子

#!/usr/bin/env python# -*- coding: utf-8 -*- import sys,reimport urllib.request,urllib.parse,http.cookiejar class myW3():    def login(self):        'post 数据'        data = {"uid":self.uid,'password':self.password,'actionFlag':'loginAuthenticate

python3爬虫--反爬虫应对机制

python3爬虫--反爬虫应对机制 内容来源于: Python3网络爬虫开发实战: 网络爬虫教程(python2): 前言: 反爬虫更多是一种攻防战,针对网站的反爬虫处理来采取对应的应对机制,一般需要考虑以下方面: ①访问终端限制:这种可通过伪造动态的UA实现: ②访问次数限制:网站一般通过cookie/IP定位,可通过禁用cookie,或使用cookie池/IP池来反制: ③访问时间限制:延迟请求应对: ④盗链问题:通俗讲就是,某个网页的请求是有迹可循的,比如知乎的问题回答详情页,正常用户行

python3爬虫中文乱码之请求头‘Accept-Encoding’:br 的问题

当用python3做爬虫的时候,一些网站为了防爬虫会设置一些检查机制,这时我们就需要添加请求头,伪装成浏览器正常访问. header的内容在浏览器的开发者工具中便可看到,将这些信息添加到我们的爬虫代码中即可. 'Accept-Encoding':是浏览器发给服务器,声明浏览器支持的编码类型.一般有gzip,deflate,br 等等. python3中的 requests包中response.text 和 response.content response.content #字节方式的响应体,会

关于爬虫的正则表达式一点记录

今天再爬虫的正则表达式里纠结了很久,记录下来,防止忘记再浪费时间 content = requests.get(url) m=re.findall(r'<a href=\"([0-9a-zA-Z\_\/\.\%\?\=\-\&]+)\"',content.text,re.I) 一开始,我把content变成str(content)放在正则匹配式中,无法匹配,可能是因为str(content)是空的. 所以一定要用content.text来匹配 原文地址:https://w