re模块----你也可以玩得很溜正则表达式

2023-11-18

目录

re模块

compile(pattern, flags=0)

flag匹配模式

match(pattern, string, flags=0)

search(pattern, string, flags=0)

findall(pattern, string, flags=0)

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

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

---------------------------------------------------------------------------------------------

re模块

1下载re模块

2导入模块

import re

 3 语法

re模块相当于是一个语言模块,拥有自己的语言规则,是爬虫的数据爬取进行数据的提取的三大模块(re    xpath   bs4 ) 之一,下面介绍re的语法的一些标识符:

(1)匹配单个字符

        

(2)匹配多个字符

 

 补充一点:使用多字符就会使正则表达式变成贪婪,多字符标记加上个?就会使正则表达式变成非贪婪,下面会有介绍

(3)匹配开头结尾

(4)匹配分组

 re.match()

match(pattern, string, flags=0)===>match("正则表达式", 拿来匹配的字符串, 匹配方式)

(1)简单介绍

match(pattern, string, flags=0)===>match("正则表达式", 拿来匹配的字符串, 匹配方式)

这样解释可能一点不友好,下面开始使用match()

(1)使用单字符" . "

 现在由我来解释

match()是re里的函数,match利用正则表达式来跟字符串匹配,从头开始匹配,

可以理解为正则表达式有啥,字符串的开头就必须有,

 没有就会报错,如下图:

 group()是报错的主犯,当match匹配不到时,会返回None,正因group()拿不到匹配到的字符就会报错

group()返回匹配到的字符

flag匹配模式

 下面我们简单介绍re.S和re.I

re.I 不区分大小写

re.S 可以换行匹配

 

 search(pattern, string, flags=0)===>search("正则表达式", 拿来匹配的字符串, 匹配方式)

search()的匹配原理是在字符串中找到符合正则表达式的字符就立刻返回,(就是找到第一个就会返回) 

findall(pattern, string, flags=0)===>findall("正则表达式", 拿来匹配的字符串, 匹配方式)         (直接返回所有匹配到的字符)

 findall()和前面的match() search()不同,findall是直接把所有匹配到的字符以列表返回

split(pattern, string, maxsplit=0, flags=0)===>split("正则表达式", 拿来匹配的字符串,最大切割数, 匹配方式) 

split就是把匹配到的字符切割(可以理解为去掉字符) ,返回切割后的字符串,和前面不同,前面是返回匹配到的,

 sub(pattern, repl, string, count=0, flags=0)===>findall("正则表达式",替换的字符, 拿来匹配的字符串, 匹配方式)

sub()和findall()的匹配类似都是匹配到全部符合的,唯一不同的就是会把匹配到的字符进行替换

 总结

以上的方法都是为了更好的匹配字符串,灵活性高,操作性强

简单练习

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

re模块----你也可以玩得很溜正则表达式 的相关文章

随机推荐

  • this.$el.querySelectorAll is not a function报错解决

    问题描述 使用el tree时 报错this el querySelectorAll is not a function 导致树无法渲染 问题解析 参考如下代码片段
  • [激光原理与应用-66]:激光器-器件 - 二极管

    第1章 二级管的基本原理 1 1 原理 现在的电子产品中 元件应用最多的是半导体材料 在集成电路中 也是应用的半导体单晶硅作为基底 通过离子注入技术而添加了硼和磷元素从而构成数以亿计的半导体晶体管 对于半导体元件来说 发挥作用的是PN结 在
  • 5G/NR 随机接入过程之Msg2

    21 6 Msg2 UE发送了preamble之后 将在RAR时间窗 RA Response window 内监听PDCCH 以接收对应RA RNTI的RAR 此时不考虑可能出现的测量gap 如果在RAR时间窗内没有接收到gNB回复的RAR
  • RPA经验分享--离线识别普通验证码

    了解RPA www i search com cn 学习RPA https support i search com cn 下载RPA https www i search com cn from csdn 前言 以下方法适用于简易的验证码
  • 【Linux】进程控制2-进程等待

    文章目录 进程等待 进程等待的必要性 wait函数 waitpid函数 进程等待 进程等待的必要性 我们之前提到过僵尸进程 僵尸进程就是子进程先于父进程退出 子进程的退出状态信息发送给父进程但是父进程忽略处理 子进程就变成了僵尸进程 解决僵
  • programming massively parrellel processors(1)

    I have to say this is a very good book to learn more about cuda especially for a novice like me who take interest in par
  • 入职字节两个月,实在卷不动,还是离职了

    对自己收入不满意 就看下自己每天做了什么 把每天记录下来 看下自己的时间都用在哪里了 对自己的时间分配搞清楚了 就可以着手去改进 如果一直糊涂的过 时间到了报复就来了 时间管理很简单 不过大多数人是不会重视的 别总抱怨自己赚钱少 关键你做了
  • Asgard King(埃氏筛法)

    Description Thor had great power but his arrogant and reckless behavior set off an ancient war and he was demoted into t
  • Mock介绍

    mock的定义 what mock是在测试过程中 对于一些不容易构造 获取的对象 创建一个mock对象来模拟对象的行为 为什么要使用mock why 在做单元测试过程中 经常会有以下的场景 class A 依赖 class B class
  • 14.C++之对象的初始化和清理

    学习目标 学习内容 1 对象的初始化和清理 在C 中 每个对象也都会有初始设置以及 对象销毁前的清理数据的设置 今天介绍两种函数 构造函数和析构函数 来完成对象的初始化和清理 构造函数 主要用于为对象的成员属性赋值 又编译器自动完成 无须手
  • 报错:SyntaxError: (unicode error) ‘unicodeescape‘ codec can‘t decode bytes in position xx: truncated

    我给出的错误代码 错误原因 文件路径输入问题 解决方法 1 在前面加r 2 将 变为 3 将 变为
  • C++学习日志

    小白C 从入门到放弃 1 黑马通讯录管理系统 点运算符 和箭头运算符 gt 的区别 2 Essential C 中练习2 1 3 Essential C 中练习2 2 4 Essential C 中练习2 3 5 Essential C 中
  • C++中变量声明和定义

    1 声明和定义都规定了变量的名字和类型 但是定义会申请内存空间 也可能为变量赋一个初始值 2 同一个变量声明可以有多处 但定义只能有一处 extern int i 声明i而非定义i int j 声明并定义j extern关键字就是告诉编译器
  • 机器智能学科

    机器智能学科简介 机器智能 Machine Intelligence MI 是指由机器 计算机以及其它计算设备 实现的人的智能 也被称为人工智能 Artificial Intelligence AI 专指计算机科学中与智能行为自动化有关的一
  • RAC重建OCR/Voting disk总结

    author skatetime 2010 05 10 我的测试环境 母系统 win2003虚拟软件 vmware3 2 1guest系统 centos4 7oracle db oracle10 2 1 前两天由于意外原因 同事从新插拔下电
  • Auto-GPT横空出世!

    转自公众号 放码过来a 千万别关注 为怕你看了会上瘾 Auto GPT 顾名思义 其独到之处就在于 Auto 可 自主 实现你设定的任何目标 即 Auto GPT 会自己上网查资料 自己思考解决方案 自己运用相关工具 而你要做的 就是在屏幕
  • 报错Error : Program type already present: android.support.design.widget.CoordinatorLayout$

    方法一 support依赖版本改为27 1 1并添加一下配置 implementation com android support appcompat v7 27 1 1 configurations all exclude group c
  • 工具技能学习(一):前置技能-makfile、make、.mk

    工具技能学习 一 前置技能 makfile make mk 在构建镜像的时候你肯定看到了很多的makefile文件 昨天我们也解读一些一些构建编译的makefile文件 但是有些兄弟没有这方面的经验 对于makefile文件的格式还是不是很
  • 树莓派4B之Windows XP系统安装游戏(二)

    上一篇博文 树莓派4B之Windows XP系统安装游戏 一 上上篇博文 树莓派4B安装windows xp windows 95 windows xp windows 95 for raspberry pi 4B 目录 一 获取游戏下载途
  • re模块----你也可以玩得很溜正则表达式

    目录 re模块 compile pattern flags 0 flag匹配模式 match pattern string flags 0 search pattern string flags 0 findall pattern stri