【python】网络爬虫与信息提取--正则表达式

一、正则表达式

        正则表达式是用来简洁表达一组字符串的表达式。是通用的字符串表达框架,简洁表达一组字符串的表达式,针对字符串表达“简洁”和“特征”思想的工具,判断某字符串的特征归属。

        用处:表达文本类型的特征;同时查找或替换一组字符串;匹配字符串的全部或部分。

        编译:将符合正则表达式语法的字符串转换成正则表达式特征。

        语法:正则表达式由字符和操作符构成。

        正则表达式的常用操作符:

        实例:

        

二、RE库的基本使用

        RE库是python的标准库,主要用于字符串的匹配。

        调用方法:import re

        RE库使用raw string类型来表达正则表达式,表示为:r'text',例如:r'[1-9]\d{5}';也使用string类型,但是由于string类型中将斜杠理解为转义符,所以会更加繁琐,例如:'[1-9]\\d{5}'。综上,当正则表达式包含转义符时使用raw string。

        re库的主要功能函数:

 re.search(pattern,string,flags=0)        

         pattern:正则表达式的字符串或原生字符串表示

        string:待匹配字符串

        flags:正则表达式使用时的控制标记

        例子:我们匹配的字符串是BIT100081

re.match(pattern,string,flags=0)

        pattern:正则表达式的字符串或原生字符串表示

        string:待匹配字符串

        flags:正则表达式使用时的控制标记

        仔细看下这个错误提示,NoneType这说明现在由match函数返回的变量match它并没有一个属性叫group,也就是说这个match是空的。我们知道,这边所用的正则表达式表示了一个中国区的邮政编码,而它从后边的string类型中,从起始位置开始匹配,但我们给出的string起始位置并不是邮政编码,因此它的正则表达式匹配结果应该是空。所以我们在使用之前一定要先判断这个match是不是空的。

re.findall(pattern,string,flags=0)

        pattern:正则表达式的字符串或原生字符串表示

        string:待匹配字符串

        flags:正则表达式使用时的控制标记

re.split(pattern,string,maxsplit=0,flags=0)

        pattern:正则表达式的字符串或原生字符串表示

        string:待匹配字符串

        maxsplit:最大分割数,剩余部分作为最后一个元素输出

        flags:正则表达式使用时的控制标记

        maxsplit=1表示只匹配第一个位置,匹配之后它将BIT分割出来

re.finditer(pattern,string,flags=0)

        pattern:正则表达式的字符串或原生字符串表示

        string:待匹配字符串

        flags:正则表达式使用时的控制标记

re.sub(pattern,repl,string,count=0,flags=0)

        pattern:正则表达式的字符串或原生字符串表示

        repl:替换匹配字符串的字符串

        string:待匹配字符串

        count:匹配的最大替换次数

        flags:正则表达式使用时的控制标记

 

RE库的另一种等价用法

        re.compile(pattern,flags=0):将正则表达式的字符串形式编译成正则表达式对象。pattern:正则表达式的字符串或原生字符串表示,flags:正则表达式使用时的控制标记。

三、RE库的match对象

        match对象就是一次匹配的结果,它包含了很多匹配的相关关系,

match对象的属性 

        只有经过compile的正则表达式才是真正的正则表达式,如果没经过,就是compile的一种表示。

四、Re库的贪婪匹配和最小匹配

        r'PY.*n'表示以PY字母开头,以N结尾,之间可以有若干个字母的字符串。

        贪婪匹配:RE库默认采用贪婪匹配,即输出匹配最长的子串。

        输出最短的子串:

        最小匹配操作符: 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/687015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

永久禁止windows自动更新方法

文章目录 前言一、打开本地组策略编辑器二、禁用windows更新总结 前言 每次打开电脑,右下角就会弹出设备更新提示,看着令人烦恼,并且更新可能导致电脑设置发生改变甚至是卡顿,所以为了自己方便于是出了禁用电脑更新的办法&#x…

对账中心系统架构设计与实现的实践总结

随着数字化时代的到来,越来越多的企业开始使用对账中心系统来管理其财务交易。对于一个成功的对账中心系统,其架构设计和实现非常关键。本文将探讨对账中心系统架构设计与实现的重要性、关键原则和实施过程中需要考虑的要点,帮助企业构建强大…

第13章 网络 Page747~749 asio核心类 ip::tcp::resolver

3, ip::tcp::resolver 如果新浪的IP地址变了,该怎么办呢? ip::tcp::resolver 可以帮我们用上www.sina.com.cn,因为它负责将人类可读的多种网址信息,一步 到位地解析成ip::tcp::socket建立连接所需要的ip::tcp::endpoint结构&…

C语言—函数

1.编写一个函数&#xff0c;通过输入一个数字字符&#xff0c;返回该数字29. /*1.编写一个函数&#xff0c;通过输入一个数字字符&#xff0c;返回该数字 */#include <stdio.h>//函数定义,返回类型为int int char_num(char c) {if(c > 0 && c < 9) //检查…

SQL32 截取出年龄(substring_index函数的用法)

代码 select substring_index(substring_index(profile,,,3),,,-1) as age ,count(device_id) from user_submit group by age知识点 substring_index(FIELD, sep, n)可以将字段FIELD按照sep分隔&#xff1a; (1).当n大于0时取第n个分隔符(n从1开始)之前的全部内容&#xff1…

关于umi ui图标未显示问题

使用ant design pro 时&#xff0c;安装了umi ui &#xff0c;安装命令&#xff1a; yarn add umijs/preset-ui -D但是启动项目后&#xff0c;发现没有显示umi ui的图标 找了许多解决方案&#xff0c;发现 umi的版本问题&#xff0c;由于我使用的ant design pro官网最新版本&a…

沐编程APP免费下载|获取免费项目以及技术教程

软件介绍 沐编程专注于分享IT编程相关知识的网站&#xff0c;主要分享毕业设计案例代码&#xff0c;课程设计案例代码&#xff0c;实用功能代码&#xff0c;bug解决方案&#xff0c;编程工具推荐以及编程课程分享等 下载方式 蓝奏云下载&#xff1a;https://wfr.lanzout.com…

[ai笔记9] openAI Sora技术文档引用文献汇总

欢迎来到文思源想的ai空间&#xff0c;这是技术老兵重学ai以及成长思考的第9篇分享&#xff01; 这篇笔记承接上一篇技术文档的学习&#xff0c;主要是为了做一个记录&#xff0c;记录下openai sora技术介绍文档提到的一些论文&#xff0c;再此特地记录一下&#xff01; 1 原文…

Sora 文生视频提示词实例集 2

Prompt: Historical footage of California during the gold rush. 加利福尼亚淘金热期间的历史影像。 Prompt: A close up view of a glass sphere that has a zen garden within it. There is a small dwarf in the sphere who is raking the zen garden and creating patter…

MySQL篇之SQL优化

一、表的设计优化 表的设计优化&#xff08;参考阿里开发手册《嵩山版》&#xff09;&#xff1a; 1. 比如设置合适的数值&#xff08;tinyint int bigint&#xff09;&#xff0c;要根据实际情况选择。 2. 比如设置合适的字符串类型&#xff08;char和varchar&#xff09…

pytorch 实现线性回归(深度学习)

一 查看原始函数 初始化 %matplotlib inline import random import torch from d2l import torch as d2l 1.1 生成原始数据 def synthetic_data(w, b, num_examples):x torch.normal(0, 1, (num_examples, len(w)))y torch.matmul(x, w) bprint(x:, x)print(y:, y)y tor…

阿里云ECS香港服务器性能强大、cn2高速网络租用价格表

阿里云香港服务器中国香港数据中心网络线路类型BGP多线精品&#xff0c;中国电信CN2高速网络高质量、大规格BGP带宽&#xff0c;运营商精品公网直连中国内地&#xff0c;时延更低&#xff0c;优化海外回中国内地流量的公网线路&#xff0c;可以提高国际业务访问质量。阿里云服务…

免费chatgpt使用

基本功能如下&#xff1a; https://go.aigcplus.cc/auth/register?inviteCode3HCULH2UD

中科大计网学习记录笔记(十二):TCP 套接字编程

前前言&#xff1a;大家看到这一章节的时候一定不要跳过&#xff0c;虽然标题是编程&#xff0c;但实际上是对 socket 的运行机制做了详细的讨论&#xff0c;对理解 TCP 有很大的帮助&#xff1b;但是由于本节涉及到了大量的编程知识&#xff0c;对于一些朋友来说不是很好理解&…

Nginx (window)2024版 笔记 下载 安装 配置

前言 Nginx (engine x) 是一款轻量级的 Web 服务器 、反向代理&#xff08;Reverse Proxy&#xff09;服务器及电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器。 反向代理方式是指以代理服务器来接受 internet 上的连接请求&#xff0c;然后将请求转发给内部网络上的服…

[AIGC_coze] Kafka 的主题分区之间的关系

Kafka 的主题分区之间的关系 在 Kafka 中&#xff0c;主题&#xff08;Topics&#xff09;和分区&#xff08;Partitions&#xff09;是两个重要的概念&#xff0c;它们之间存在着密切的关系。 主题是 Kafka 中用于数据发布和订阅的逻辑单元。每个主题可以包含多个分区&#x…

BUGKU-WEB eval

题目描述 题目截图如下&#xff1a; 进入场景看看&#xff1a; <?phpinclude "flag.php";$a $_REQUEST[hello];eval( "var_dump($a);");show_source(__FILE__); ?>解题思路 PHP代码审计咯 相关工具 百度搜索PHP相关知识 解题步骤 分析脚…

OpenAI全新发布文生视频模型:Sora!

OpenAI官网原文链接&#xff1a;https://openai.com/research/video-generation-models-as-world-simulators#fn-20 我们探索视频数据生成模型的大规模训练。具体来说&#xff0c;我们在可变持续时间、分辨率和宽高比的视频和图像上联合训练文本条件扩散模型。我们利用对视频和…

【C++初阶】第三站:类和对象(中) -- 日期计算器

目录 前言 日期类的声明.h 日期类的实现.cpp 获取某年某月的天数 全缺省的构造函数 拷贝构造函数 打印函数 日期 天数 日期 天数 日期 - 天数 日期 - 天数 前置 后置 前置 -- 后置-- 日期类中比较运算符的重载 <运算符重载 运算符重载 ! 运算符重载 …

SG5032EAN规格书

SG5032EAN 晶体振荡器结合了相位锁定环&#xff08;PLL&#xff09;技术和AT切割晶体单元&#xff0c;提供了73.5 MHz至700 MHz的广泛频率范围&#xff0c;以满足高速数字应用的需求。高性能的LV-PECL输出&#xff0c;2.5V和3.3V电源电压&#xff0c;可灵活适配不同设计的电源需…