python基础教程之re模块详解

python自学高级应用(一)[正则表达式:基础知识+match+search+检索和替换+贪婪模式和非贪婪模式] Python 正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配 Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式 re 模块使 Python 语言拥有全部的正则表达式功能 compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象,该对象拥有一系列方法用于正则表达式匹配和替换 re 模块也提供了与这... 阅读详情
AI摘要

本文介绍了Python中的re模块,包括正则表达式的概念、re模块的作用(如数据验证、文本替换和子串提取),以及常用方法如match、search和finditer的使用示例和元字符、多字符匹配和分组匹配的讲解。此外,还提到了Python学习资源,如学习路线、视频教程、书籍和实战项目等内容。,


在这里插入图片描述

一、re是什么?

正则表达式是一个特殊的字符序列,能方便的检查一个字符串是否与某种模式匹配。re模块使得python拥有全部的正则表达式功能。

二、re 模块的作用

通过使用正则表达式,可以:
测试字符串内的模式。—— 例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。
替换文本。—— 可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。
基于模式匹配从字符串中提取子字符串。—— 可以查找文档内或输入域内特定的文本。

三、re模块的使用

1、常用方法

  • findAll(): 匹配所有的字符串,把匹配结果作为一个列表返回
  • match(): 匹配字符串的开始位置,如果开始位置没有,则返回None
  • search():在字符串中搜索,返回搜索到的第一个
  • finditer():匹配所有的字符串,返回迭代器

2、 元字符

匹配任意字符(除\n以外) h. 代表匹配h后的任意一个字符

import re
res = 'h.'
s = 'hello python'
result = re.findall(res, s)
print(result)  # \['he', 'ho'\]

[] 拿[]中的人任意一个字符,去字符串中匹配,匹配到一个返回一个,最后以列表返回

import re
res2 = '\[hon\]'
s = 'hello python'
result = re.findall(res2, s)
print(result)  # \['h', 'o', 'h', 'o', 'n'\]

\d 匹配数字0-9

import re
res2 = '\[\\d\]'
s = 'hell666o pyt999hon'
result = re.findall(res2, s)
print(result)  # \['6', '6', '6', '9', '9', '9'\]

\D 匹配非数字, 包含空格

import re
res2 = '\[\\D\]'
s = 'hello 3334 python 88'
result = re.findall(res2, s)
print(result)  # \['h', 'e', 'l', 'l', 'o', ' ', ' ', 'p', 'y', 't', 'h', 'o', 'n', ' '\]

‘\s’ 匹配空白字符

import re
res2 = '\[\\s\]'
s = 'hello 3334 python 88'
result = re.findall(res2, s)
print(result)  # \[' ', ' ', ' '\]

‘\S’ 匹配非空白字符

import re
res2 = '\[\\S\]'
s = 'hello 3334 python 88'
result = re.findall(res2, s)
print(result)  # \['h', 'e', 'l', 'l', 'o', '3', '3', '3', '4', 'p', 'y', 't', 'h', 'o', 'n', '8', '8'\]

\w 匹配非特殊字符,即a-z、A-Z、0-9、_、汉字

import re
res2 = '\[\\w\]'
s = 'hello#&\_ aa 8python中国'
result = re.findall(res2, s)
print(result)  # \['h', 'e', 'l', 'l', 'o', '\_', 'a', 'a', '8', 'p', 'y', 't', 'h', 'o', 'n', '中', '国'\]

\W 匹配特殊字符 ( - ~@#$&*)空格也属于特殊字符

import re
res2 = '\[\\W\]'
s = '-hello#&\_ aa 8python中国'
result = re.findall(res2, s)
print(result)  # \['-', '#', '&', ' ', ' '\]

3、多字符匹配

(1)*:匹配前一个字符出现一次,或无限次 贪婪模式

import reres2 = 'h\*'s = '-hhello hhh python'result = re.findall(res2, s)print(result)  #\['', 'hh', '', '', '', '', '', 'hhh', '', '', '', '', 'h', '', '', ''\]import re
res2 = 'h\*'
s = '-hhello hhh python'
result = re.findall(res2, s)
print(result)  #\['', 'hh', '', '', '', '', '', 'hhh', '', '', '', '', 'h', '', '', ''\]

(2) + :匹配前一个字符出现1次或无穷次

import re
res2 = 'h+'
s = '-hhello hhh python'
result = re.findall(res2, s)
print(result) # \['hh', 'hhh', 'h'\]

(3)?: 匹配前一个字符出现0次或者1次,非贪婪模式

import re
res2 = 'h?'
s = '-hhello hhh python'
result = re.findall(res2, s)
print(result) # \['', 'h', 'h', '', '', '', '', '', 'h', 'h', 'h', '', '', '', '', 'h', '', '', ''\]

(4) {n} :匹配前一个字符连续出现n次

import re
res2 = 'https{2}'
s = '-hhello-httpssss-python'
result = re.findall(res2, s)
print(result) # \['httpss'\] 
匹配到前一个字符s 连续出现2次

{n,m} :匹配前一个字符出现n-m次

import re
res2 = 'https{1,3}'
s = '-hhello-httpssss-python'
result = re.findall(res2, s)
print(result) # \['httpss'\]

(5) 贪婪模式和非贪婪模式

正则表达式通常使用于查找匹配字符串。贪婪模式,总是尝试匹配尽可能多的字符;非贪婪模式正好相反,总是尝试匹配尽可能少的字符。在"*“,”?“,”+“,”{m,n}"后面加上?,使贪婪变成非贪婪。

(6) | :两个条件进行匹配,或的关系

import re
res2 = 'he|ll'
s = 'hello python'
result = re.findall(res2, s)
print(result) # \['he', 'll'\]

(7)边界值:

^ :匹配以哪个字符开头的

import re
res2 = '^he'
s = 'hello python'
result = re.findall(res2, s)
print(result) # \['he'\]

$ : 匹配以哪个字符结尾的字符

import re
res2 = 'on$'
s = 'hello python'
result = re.findall(res2, s)
print(result) # \['on'\]

4、分组匹配

() :只匹配()里面的

import re
res2 = '#(\\w.+?)#'
s = "{'mobile\_phone':'#mobile\_phone#','pwd':'Aa123456'}"
result = re.findall(res2, s)
print(result)  # \['mobile\_phone'\]

5、match()方法的使用

str = "www.runoob.com"
print(re.match('www', str).span())  # 在起始位置匹配 ,返回匹配到的区间下标  (0,3)
print(re.match('com', str))  # 不在起始位置匹配  None

6、 search():在字符串中搜索,返回搜索到的第一个

str = "www.runoob.com"
print(re.search('www', str).span())  # 在起始位置匹配 ,返回匹配到的区间下标
print(re.search('com', str).span())  # 不在起始位置匹配

re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

7、 finditer():

匹配所有的字符串,返回迭代器和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。

res = 'h.'
s = 'hello python'
result = re.finditer(res, s)
for str in result:
    print(str.group())
he
ho


关于Python技术储备

给大家分享一份全套的 Python 学习资料,希望提供给小伙伴们一点帮助!

保存图片微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python基础学习视频

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述
因篇幅有限,仅展示部分资料

三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、Python工具包+项目源码合集
①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

六、Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述
在这里插入图片描述
这份完整版的Python全套学习资料已经上传优快云,朋友们如果需要可以保存图片微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

Python 正则表达式 re 包 r"ab? 阅读详情

相关推荐

Python的re模块

re.search、re.match()、re.finditer()三者都返回Match对象,想要使用里面的内容,可以使用 group(num) 或 groups() 匹配对象函数来获取匹配表达式。这个正则表达式对象可以用于执行匹配操作,例如搜索、替换等,比直接使用。匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。re.subn():替换匹配的字符串,返回替换完成的文本和替换的次数。re.sub():替换匹配的字符串,返回替换完成的文本。

weixin_45490820的博客 1343

python re库 详解(正则表达式)

python re库 详解(正则表达式) 说明 则表达式(英文名称:regular expression,regex,RE)是用来简洁表达一组字符串特征的表达式。最主要应用在字符串匹配中。 re.compile r raw strings,不进行转义 python xx=re.compile(r’“abc“,string1)里面r的作用 r表示其后的字符串按原样表示,不使用转义字符 ...

孙天成-全栈工程师 7万+

Python常用模块 之 re:提供整个正则表达式的实现

Python常用模块 之 re:提供整个正则表达式的实现

孤寒者的博客 11万+

python中的re模块

python中的re模块 Python中re模块主要功能是通过正则表达式是用来匹配处理字符串的 第一步:import re 导入该模块后,就可以使用该模块下的所有方法和属性 import re re有很多的方法和属性 re 模块提供了不少有用的函数,用以匹配字符串,比如: compile 函数 match 函数 search 函数 findall 函数 finditer 函数 split 函数 sub 函数 subn 函数 re 模块的一般使用步骤如下: 使用 compile 函数将正则表达式的字符串形

m0_43609475的博客 4万+

【QT】基于QSerialPort的跨平台串口通信实战指南

本文是一份基于Qt QSerialPort模块的跨平台串口通信实战指南。详细介绍了从硬件基础、QSerialPort核心类使用、参数配置、设备自动发现到数据异步读写和错误处理的完整流程,并通过构建一个功能齐全的串口调试助手实例,帮助开发者快速掌握在Windows、Linux和macOS系统下进行高效、稳定的串口应用开发。

a1b2c3d的博客 980

Cadence Allegro 17.4学习记录开始02-原理图Capture CIS 17.4

Allegro的第一方网表与第三方网表有以下几个区别点;Ø 与Allegro实现交互式操作的是第一方网表,第三方网表时不可以实现交互式操作;Ø 第三方网表不能将器件的Value属性导入到PCB中,输出时以封装属性来代替Value属性,第一方网表是可以的;Ø 网表导入到PCB中时,第三方的网表需要指定事先指定好PCB封装库文件,并产生Device文件,才可以将网表导入到PCB中,第一方网表则可以直接导入。

qq_31444421的博客 1万+

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的博客 4744

把MinerU集成到Dify

本文介绍了如何将本地部署的MinerU与Dify平台进行集成。首先需要确保Dify和MinerU在Docker环境中正常运行,并通过配置虚拟网络实现互联。然后详细说明了在Dify平台安装MinerU插件的步骤,包括从插件市场搜索安装、配置连接参数等关键操作。特别强调了要等待MinerU容器完全启动(healthy状态)后再进行Dify配置,否则会出现连接错误。通过简单的URL指向和API密钥设置,用户即可实现Dify平台与本地MinerU算力网络的对接,为后续的AI应用开发提供基础支持。

lyxerlau的博客 313

Python re模块用法详解

Python re模块用法详解 在 Python 爬虫过程中,实现网页元素解析的方法有很多,正则解析只是其中之一,常见的还有 BeautifulSoup 和 lxml,它们都支持网页 HTML 元素的解析操作。本节重点讲解如何使用 re 正则解析模块实现网页信息的提取。 注意:在学习本节知识之前,您应该基本掌握了 Python re 模块的常用方法。 re模块常用方法 1) re.compile() 该方法用来生成正则表达式对象,其语法格式如下: regex=re.compile(pattern,flags

ccc369639963的博客 7314

Python+gensim【中文LDA】简洁模型

文章目录完整代码过程详解words_lsdictionarydictionary.doc2bow函数corpuslda 完整代码 from gensim import corpora, models import jieba.posseg as jp # 待分析文本集 text1 = '美国教练坦言,没输给中国女排,是输给了郎平' text2 = '中国女排世界排名第一?真实水平如何,听听巴西和美...

ArYe 2万+

计算机考研常见面试题

写在前面 本人参加20考研,由于复试没有具体要求会问哪几门课,所以我就找了网上一些常见的计算机专业的面试题,整理如下 主要结构: 数据库 软件工程 操作系统 计算机组成原理 计算机网络 数据结构 C++ Java 数据库 1、数据:数据库中存储的基本对象。 数据库:长期存储在计算机内的、有组织的、可共享的数据集合。 数据库管理系统:专门用于建立和管理数据库的一套软件。对外部程序提供访问数据库的方法,对内进行数据管理。 数据库系统:与和数据库相关的整个系统,一般由数据库、数据库管理系统、应用程序、数

qq_38841618的博客 2万+

【Python】re模块

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

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

获取微信公众号历史文章列表页链接

action=home&__biz=这里替换你的biz==4、链接分享、发送到微信即可访问,注意该链接仅可在微信客户端使用,外部浏览器无法打开。3、拼接通用公式生成链接即为微信公众号历史文章列表链接。,如下图找到红框部分值,复制即为上文biz值。2、浏览器右键查看网页源码,新开页面搜索(1、复制公众号任意文章的链接在浏览器打开。

珞瑜的博客 7941

Python re 模块详解

本文介绍了Python中re模块的功能和使用方法。re模块提供了正则表达式操作,包含常用函数如match()、search()、findall()等,以及匹配对象的操作方法。文章详细讲解了正则表达式语法,包括元字符、分组捕获、非捕获组和命名组的使用,并介绍了标志参数和实际应用场景(如邮箱验证、URL解析)。最后给出了性能优化建议和常见问题解答,强调复杂正则表达式应拆分为简单表达式以提高可维护性。正则表达式是强大的文本处理工具,但需合理使用。

2301_76287968的博客 1021

全覆盖路径规划开源项目Clean-robot-turtlebot3原理及流程概括总结

本系列文章主要介绍全覆盖路径规划开源项目Clean-robot-turtlebot3的相关内容,包含如下四篇文章,分别介绍了开源项目Clean-robot-turtlebot3流程的概括总结、ROS坐标系常用坐标及其变换、Clean-robot-turtlebot3关键函数解析等内容。

慕羽★的博客 6102

【OpenClaw从入门到精通】第37篇:教育“龙虾”进化论——从答疑助教到全流程智能教学系统(2026实测版)

2026年,教育AI已从被动答疑的L1级进化至主动教学的L4级,清华开源的OpenMAIC平台更是打破传统慕课局限,实现互动式AI课堂。本文基于天津工业大学、西北农林科技大学等高校的真实应用案例,结合腾讯云、天翼云的实操指南,详解OpenClaw在教育场景的四层进化路径。核心内容包括:L1-L4级教育自动化架构解析、清华OpenMAIC L4级AI课堂深度拆解、从零搭建智能答疑(QQ群机器人)+作业批改+学情分析全流程系统,以及高校网络安全合规部署方案。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 774

python re模块 详解

re 模块是 Python 中用于处理正则表达式的标准库。正则表达式是一种强大的字符串匹配和处理工具,可以用来查找、替换、分割字符串等。下面是 re 模块的详细介绍,包括常用函数和方法。

stephenbruce的博客 1509

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

python怎么安装re模块_python模块&&模块re

1.1 什么是模块?简言之,模块就是一组功能的集合大家之前在编写简单的功能实现时,思路是先将程序中都需要有哪些功能定义出来,然后在需要用的地方调用即可。比起之前通篇垒代码的方式,将重复要用的功能定义成函数会让程序更加简洁,这不能不算做是一种进步,但问题是,随着程序功能越来越多,再将所有的代码都放到一起,程序的组织结构仍然会不清晰,不方便管理,以后我们写程序,都是分文件的,如果多个文件中都需要用...

weixin_39614561的博客 4064

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Python-re模块

python-re库0 前言1 re库1.1 re库的方法列表2 正则表达式3 示例3.1 标识符检测 0 前言 正则表达式(英文名称:regular expression,regex,RE)是用来简洁表达一组字符串特征的表达式。最主要应用在字符串匹配中。 re模块是python中处理正则表达式regular expression的一个模块,通过re模块的方法,把正则表达式pattern编译成正则对象,以便使用正则对象的方法 r表示raw的简及raw string 意思是原生字符,也就是说是这个字符串中间的

u011079613的博客 865

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

python re模块下载_Python之re模块

一、正则表达式re模块是python独有的匹配字符串的模块,该模块中提供的很多功能是基于正则表达式实现的,而正则表达式是对字符串进行模糊匹配,提取自己需要的字符串部分,他对所有的语言都通用。注意:re模块是python独有的正则表达式所有编程语言都可以使用re模块、正则表达式是对字符串进行操作因为,re模块中的方法大都借助于正则表达式,故先学习正则表达式。接下来我所有函数里面的参数解释如下:pat...

weixin_40006965的博客 282

python re模块下载_Python-re模块

Python-re模块re库,是一个Python处理文本的标准库标准库的意思表示这是一个Python内置模块,不需要额外下载,目前Python内置模块大概有300个。可以在这里查看Python所有的内置模块:https://docs.python.org/3/py-modindex.html#cap-rre模块主要定义了9个常量、12个函数、1个异常re模块常量9个常量中,前5个(IGNORECA...

weixin_39654823的博客 1103

Python中re模块总结

Python中re模块总结 正则表达式作为计算机科学的一个概念,通常被用来检索、替换那些符合某个规则的文本。正则表达式是对字符串操作的一种逻辑公式,用事先定义好的规则字符串对字符串进行过滤逻辑处理。 re模块总结,正则表达式。在网络爬虫中对于数据定位,学习regex也很有必要 文章目录Python中re模块总结常用方法重要标识符常用表达式规则举例说明re.match(pattern, string, flags=0)re.search(pattern, string, flags=0)re.finda

北山啦的博客 4607

python模块-re模块

http://

皮皮blog 9873

python中re模块_python re模块

python 中的re模块re 模块为Python的内置模块,Python程序中通过这个模块来使用正则表达式。re 模块的使用re 模块有两种使用方式,示例中以match方法为例。方式 1:步骤:1)直接使用 re.match 方法(传入正则表达式和需要匹配的字符串)对文本进行匹配查找,match方法返回一个 Match 对象2)使用 Match 对象提供的方法获取匹配结果示例:import re...

weixin_39612733的博客 494

Python之re模块

re模块是python独有的匹配字符串的模块,该模块中提供的很多功能是基于正则表达式实现的,而正则表达式是对字符串进行模糊匹配,提取自己需要的字符串部分,他对所有的语言都通用

m0_59485658的博客 2036
上一篇: 零基础学Python应该了解些什么?python程序员带你解读。
下一篇: 值得收藏!python 19个编程技巧
一秋的编程笔记
博客等级 码龄4年 1588粉丝 319原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值