re模块,函数模式讲解!

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

包含编程籽料、学习路线图、爬虫代码、安装包等!【点击领取 100%免费!】】

re模块

python爬虫过程中,实现页面元素解析的方法很多,正则解析只是其中之一,常见的还有BeautifulSoup和lxml,它们都支持网页HTML元素解析,re模块提供了强大的正则表达式功能

re模块常用方法

  • compile(pattern,flags=0) :用于编译一个正则表达式字符串,生成一个re.pattern对象

    • 参数: pattern:正则表达式字符串,flags:可选标志,用于修改匹配行为(下面会详细讲解)
    pattern = re.compile(r'a.*e')
    
    
  • search(pattern,string,flag=0):搜索字符串中第一个匹配,返回一个匹配对象,否则返回None

    • 参数:pattern:正则表达式字符串或编译后的re.pattern对象,string:要搜索的字符串,flags:用于修改匹配行为(如 re.IGNORECASE、re.MULTILINE 等)
    • 返回值:返回一个re.Match对象或None
    result = re.search(r'\bcat\b', 'The cat sat on the mat')
    #输出<re.Match object; span=(4, 7), match='cat'> 接下来会解释
    
    
  • match(pattern,string,flags=0):从字符串的开头匹配,如果匹配成功返回一个匹配对象,否则返回None

    • 参数pattern:正则表达式字符串或编译后的re.Pattern 对象,string:要匹配的字符串,flags:可选的标志,用于修改匹配行为
    • 返回值:返回一个re.Match对象或None
    result = re.search(r'\bcat\b', 'The cat sat on the mat')
    
    
  • findall(pattern,string,flags=0):返回所有匹配的子串列表

    • 返回值:一个包含所有匹配子串的列表
    result = re.findall(r'\bcat\b', 'The cat sat on the cat mat')
    #输出['cat', 'cat']
    
    
  • finditer(pattern,string,flags=0) :返回一个迭代器,产生所有匹配的 Match对象

    • 返回值:一个迭代器,产生 re.Match 对象
    result = re.finditer(r'\bcat\b', 'The cat sat on the cat mat')
    for match in result:
        print(match)
    #<re.Match object; span=(4, 7), match='cat'>
    #<re.Match object; span=(19, 22), match='cat'>
    
    
  • sub(pattern,repl,string,count=0,flags=0):替换字符串中所有匹配的子串

    • 参数:repl:替换字符串或替换函数,count:可选参数,指定最大替换次数,默认为0(替换所有匹配)
    • 返回值:替换后的字符串
    result = re.sub(r'\bcat\b', 'dog', 'The cat sat on the cat mat')
    print(result)
    #The dog sat on the dog mat
    
    
  • split(pattern,string,maxsplit=0,flags=0) :根据匹配的字串分割字符串

    • 参数:maxsplit:可选参数,指定最大分割次数,默认为0(不限分割次数)
    • 返回值:一个包含分割结果的列表
    text = "The cat sat on the cat mat"
    result = re.split(r'\b', text)
    print(result)
    #['', 'The', ' ', 'cat', ' ', 'sat', ' ', 'on', ' ', 'the', ' ', 'cat', ' ', 'mat', '']
    
    

flags模式标志位

模式匹配支持多种模式标志,用于修改匹配模式行为

re.IGNORECASE或re.I

  • 忽略大小写匹配模式

  • eg:

    text = "The cat sat on the cat mat"
    regex = re.compile("CAT", re.IGNORECASE)
    result = regex.search(text)
    if result:
        print(result.group())
    else:
        print("not found")
    #output-> cat
    
    

re.MULTILINE或re.M

  • 多行模式,使 ^ 和 $ 匹配每行的开始和结束

  • eg:

    text = """first Line
    second Line2
    third Line3"""
    
    regex = re.compile(r'^\w+', re.MULTILINE)
    result = regex.findall(text)
    print(result)
    #output->['first', 'second', 'third']
    
    

re.DOTALL 或 re.S

  • 可以使得. 匹配包括换行符在内的所有字符

  • eg:

    text = "abc\ndef\nghi"
    
    regex = re.compile(r'.*', re.DOTALL)
    result = regex.findall(text)
    print(result)
    #output->['abc\ndef\nghi', '']
    
    
    

re.VERBOSE 或 re.X

  • 允许在正则表达式中使用注释和空白

  • eg:

    	text = "The cat sat on the mat"
    	
    	regex = re.compile(r"""
    	                \b #单词边界
    	                cat#匹配"cat"
    	                \b#单词边界
    	""", re.VERBOSE)
    	result = regex.findall(text)
    	print(result)
    #output->['cat']
    
    

内嵌模式标志

内嵌模式的功能与flags标志位的功能一致,与之不同的是使用内嵌模式标志和注释可以增强正则表达式的可读性和灵活性

常用的内嵌模式标志

  • (?i):忽略大小写

    eg:

    text = "hello world"
    
    regex = re.compile(r"(?#忽略大小写)(?i)HELLO WORLD")
    # (?#...) 是一个注释语法
    result = regex.match(text).group()
    print(result)
    
    
  • (?m):多行模式,使 ^ 和 $ 匹配每行的开始和结束,而不仅仅是整个字符串的开始和结束

    eg:

    text = """first Line
    second Line
    third Line"""
    
    regex = re.compile(r"(?#多行模式)(?m)^\w+")
    result = regex.findall(text)
    print(result)
    #output->['first', 'second', 'third']
    
    
  • (?s):点匹配所有字符模式

    eg:

    text = "abc\ndef\nghi"
    
    regex = re.compile(r"(?#.号匹配换行符在内的所有字符)(?s).*")
    result = regex.findall(text)
    print(result)
    #output->['abc\ndef\nghi', '']
    
    
  • (?x):允许注释和空白

    eg:

    text = "The cat sat on the mat"
    
    regex = re.compile(r"(?#允许注释)(?ix)\bCAT\b")
    # ix->忽略大小写的注释模式
    result = regex.findall(text)
    print(result)
    #output->['cat']
    
    

re.Match 对象

re.Match对象是re模块中的一个类,用于表示正则表达式匹配的结果,当使用re.search,re,matchre.finditer方法时,若找到了匹配项,这些方法就会返回一个re.Match对象

re.Match返回字段解释

当使用print打印re.Match对象通常会返回<re.Match object; span=(4, 7), match='cat'>这种类似的字段

  • <re.Match object;:该部分表示的这是一个re.Match对象
  • span=(4, 7):表示一个元组,表示的是匹配字串在原始字符串中起始索引和结束索引
  • match='cat’:match是一个字符串,表示实际匹配的字串

访问 re.Match 对象的属性

通过访问re.Match对象的属性,我们可以获取更多信息

  • group():返回匹配的子字符串,如match.group()返回’cat’
  • start():返回匹配字串在原始字符串的起始索引
  • end():返回匹配字串在原始字符串的结束索引
  • span():返回元组表示字串的起始与结束索引

最后,如果你是准备学习Python或者正在学习(想通过Python兼职),下面这些你应该能用得上:
包括:Python安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

在这里插入图片描述

Python 正则表达式使用--Re 模块详解 1. 常用正则表达式符号和特殊字符 2. Re 模块:核心函数和方法 2.1 re.compile() 编译函数 2.1.1re.compile() 语法格式 2.1.2re.compile() 用法 2.2 re.match() 和 re.search() 匹配和搜索函数 2.2.1re.match() 语法格式 2.2.2re.match() 用法 2.2.3re.search() 语法格式 2.2.4re.search() 用法 2.3 re.findall() 和 阅读详情

相关推荐

史上最全 Python Re 模块讲解(一)

re模块下的函数 compile(pattern):创建模式对象 import re pat=re.compile( A ) m=pat.search( CBA ) #等价于 re.search( A , CBA ) print m <_sre.SRE_Match object at 0x9d690c8> #匹配到了,返回MatchObject...

weixin_42625143的博客 4246

python爬虫笔记之re.IGNORECASE

re.IGNORECASE有什么用?re.IGNORECASE是什么意思?(原谅我抓下seo。。)   这里自己总结下:     re.IGNORECASE是compile函数中的一个匹配模式。     re.IGNORECASE的意思就是忽略大小写。   example.     下图是没有添加re.IGNORECASE模式时,匹配则输出一段字符串,不匹配则输出None。...

weixin_30588675的博客 4525

Python re 模块

Pythonre模块是用于处理正则表达式的标准库模块。正则表达式(Regular Expression,简称 regex 或 regexp)是一种强大的工具,用于匹配、搜索和操作文本。通过re模块,你可以在 Python 中使用正则表达式来处理字符串。

xiaoaque的博客 880

re 模块

re模块及其方法

sheep55的博客 3118

re.IGNORECASE --以不区分大小写的方式对文本做查找和替换

问题:以不区分大小写的方式对文本做查找和替换 解决方案:需要使用re模块并且对各种操作都要加上re.IGNORECASE标记 import re text = 'UPPER PYTHON, lower python, Mixed Python' re.findall('python', text, flags=re.IGNORECASE) Out[5]:...

Jack的博客 5422

Pythonre模块

正则表达式其本身就是一种小型的,高度专业化的编程语言。在Python中,它被内 嵌在了re模块里面,正则表达式模式被编译成一系列的字节码,然后由用C编写的匹 配引擎执行。

Linux小白一只~正处于学习阶段,觉得我写的还好的请多多给我点赞呀,谢谢大家!!(๑>ڡ<)☆ 4716

Python3: 正则表达式 - re 模块

Python官网 正则表达式:reRegular expression operations 1. 正则表达式模块: re 正则表达式简单使用示例: import re pattern = re.compile("[0-9]+") # 编译正则表达式, 返回 re.Pattern print(pattern.match("12cd"))

谢TS的博客 1743

re模块 函数模式详解

参数pattern:正则表达式字符串或编译后的re.Pattern 对象,string:要匹配的字符串,flags:可选的标志,用于修改匹配行为。match(pattern,string,flags=0):从字符串的开头匹配,如果匹配成功返回一个匹配对象,否则返回None。search(pattern,string,flag=0):搜索字符串中第一个匹配,返回一个匹配对象,否则返回None。sub(pattern,repl,string,count=0,flags=0):替换字符串中所有匹配的子串。

weixin_55010563的博客 701

re模块的玩法都在这里~~~

文章目录一、正则函数re.match函数re.search函数re.sub函数re.subn函数re.compile函数re.findall函数re.finditer函数re.split函数小结二、compile函数1. match函数2. search函数3. findall函数4. finditer函数5. split函数6. sub函数7. subn函数小结三、元字符和通用字符四、贪婪与非贪婪匹配五、分组六、正则表达式修饰符七、扩展 想要使用python的正则表达式功能就需要调用re模块re模块

南枝向暖北枝寒 8540

python中的re模块

又称规则表达式(Regular Expression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"),是的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。Pythonre模块主要功能是通过是用来匹配处理字符串的(regex:正则)第一步:import re导入该模块后,就可以使用该模块下的所有方法和属性。

顺其自然~专栏 7370

Pythonre模块详解 (超级无敌宇宙灭霸详细)

引入 正则表达式是匹配字符串的强大工具, 在每个编程语言中都有正则表达式的概念, 利用正则表达式, 我们从返回的页面内容中提取想要的内容就变的比较方便了 1.什么是 re 模块 re 模块Python 内置的模块 2.什么是正则 正则表达式是对字符串操作的一种逻辑 (规则), 就是事先定义好一些特定的字符组合, 组成一个"规则字符串", 然后使用这个 “规则字符串” 来对字符串进行过滤 在 Python 中通过内置的 re 模块来使用正则表达式, 它提供了所有正则表达式的功能 3.正则表达式的大

Shawn派大星 9524

Python re模块详解

2. Python re模块2.0 re.flagsre.I 忽略大小写re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境re.M 多行模式re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库re.X 为了增加可读性,忽略...

Oliver_Hong的博客 4737

Python3.7模块re

一、特殊字符(这里列出常用的)参考于:https://docs.python.org/zh-cn/3/library/re.html 符号 释义 普通字符 匹配自身 . (点) 在默认模式,匹配除了换行的任意字符。如果指定了标签 DOTALL ,它将匹配包括换行符的任意字符。 ^ (插入符号) 匹配字符串的开头, 并且在 MULTILINE 模式也匹配换行后的首个符号,举例...

1stPeak's Blog 1万+

re模块中其他常用的函数(sub、subn、compile、findall、finditer、split),贪婪模式与非贪婪模式

re 模块中其他常用的函数 sub 和 subn 搜索与替换   sub 函数和 subn 函数用于实现搜索和替换功能。这两个函数的功能几乎完全相同,都是 将某个字符串中所有匹配正则表达式的部分替换成其他字符串。用来替换的部分可能是一个 字符串,也可以是一个函数,该函数返回一个用来替换的字符串。sub 函数返回替换后的结果,subn 函数返回一个元组,元组的第 1 个元素是替换后的结果,第 2 个元素是替换的总 数。语法格式如下: re.sub(pattern, repl, string, count=0,

qq_41930096的博客 1539

Python Re 模块超全解读!详细

内行必看!Python Re 模块超全解读!2019.08.08 18:59:45字数 953阅读 121re模块下的函数 compile(pattern):创建模式对象 > import re > > pat=re.compile('A') > > m=pat.search('CBA') #等价于 re.search('A...

kyle1314608的博客 1073

Python之正则表达式(re模块

本节内容 re模块介绍 使用re模块的步骤 re模块简单应用示例 关于匹配对象的说明 说说正则表达式字符串前的r前缀 re模块综合应用实例 参考文档 提示:由于该站对MARKDOWN的表格支持的不是很好,所以本文中的表格均以图片的形式提供,大家如果看着比较模糊,可以放大来看或下载图片在本地查看。 正则表达式(Regluar Expressions)又称规则表达式,在代码中常简写为REs,regexes或regexp(regex patterns)。它本质上是一个小巧的、高度专用的编程.

1万+

Python——正则表达式re讲解

关于一些常见的正则表达式应用

qq_57150526的博客 2116

Python必学模块re模块(正则表达式)详解

文章目录一、什么是正则表达式二、re模块介绍三、常用正则表(元字符)3.1 \A,\z和^,$的区别四、re模块用法示例4.1 转义字符4.2 贪婪匹配和非贪婪匹配4.3 字符集[]和分组()的区别五、re模块的使用5.1 赋值变量重用5.2 直接使用六、re模块常用函数6.1 常用函数功能简介6.2 re.Match对象下的方法和属性6.3 常用函数代码实例七、re模块的常量(属性)八、练习题 ...

金鞍少年的博客 1743
上一篇: Python数据爬取处理可视化,手把手全程教学!
下一篇: Pycharm工具使用小结,超详细!
Python_trys
博客等级 码龄2年 3972粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值