正则表达式(re模块)超详细讲解

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 模块是处理字符串模式匹配的强大工具,广泛应用于爬虫、数据清洗、日志提取等场景。本教程将从基础到高级,逐步解析正则表达式的各个模块及用法。

目录

1:基础匹配与 re.search()

2:使用 re.findall() 获取所有匹配

3:字符集与范围 [abc]、[a-z]

4:边界匹配 ^ 与 $

5:使用分组 () 和 group(n)

6:命名分组 (?P ...)

7:匹配多个选项 |

8:重复匹配 {m,n}

9:懒惰匹配 *?、+? (###重要###)

10:替换字符串 re.sub()

11:预编译模式 re.compile()

12:零宽断言(前瞻/后顾)

13:DOTALL 和 IGNORECASE 模式

正则表达式功能对照总结表


1:基础匹配与 re.search()

import re

text = "Hello, my number is 12345."

# 查找第一个数字序列
match = re.search(r'\d+', text)
print(match.group())  # 输出: 12345
  • \d+:匹配 1 个或多个数字。

  • re.search():匹配到第一个就返回,返回 Match 对象。

2:使用 re.findall() 获取所有匹配

text = "Phone: 12345, Fax: 67890"
numbers = re.findall(r'\d+', text)
print(numbers)  # ['12345', '67890']

re.findall() 会返回一个 所有匹配项组成的列表,非常适合提取多个值。

3:字符集与范围 [abc]、[a-z]

text = "a1 b2 c3 d4"
result = re.findall(r'[a-c]\d', text)
print(result)  # ['a1', 'b2', 'c3']
  • [a-c]:表示 a~c 范围内的字符。

  • [0-9] = \d,是数字范围。

4:边界匹配 ^ 与 $

text = "hello123"
print(bool(re.match(r'^\w+$', text)))  # True
  • ^:匹配开头,$:匹配结尾。

  • \w+:表示一个或多个字母、数字、下划线。

5:使用分组 () 和 group(n)

text = "Name: John, Age: 28"
match = re.search(r'Name: (\w+), Age: (\d+)', text)
print(match.group(1))  # John
print(match.group(2))  # 28
  • 使用括号 () 可以分组匹配内容。

  • .group(1) 获取第一个括号中的内容。

6:命名分组 (?P<name>...)

text = "Product: Apple, Price: $99"
match = re.search(r'Product: (?P<item>\w+), Price: \$(?P<price>\d+)', text)
print(match.group('item'))   # Apple
print(match.group('price'))  # 99

(?P<name>...) 是命名分组,方便读取和代码可读性更强。

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模块的常量(属性)八、练习题 ... 阅读详情

相关推荐

从材料到磁场:ANSYS Workbench永磁体仿真全流程解析

本文详细解析了在ANSYS Workbench中进行永磁体仿真的完整流程。从钕铁硼等永磁材料的特性讲起,逐步指导如何在软件中搭建模型、定义关键磁化方向、设置边界条件与网格划分,并解读磁场分布结果。文章旨在帮助工程师掌握静磁场仿真核心技术,为电机、传感器等设备的设计与优化提供精准指导。

weixin_29229989的博客 273

人大金仓V8R3企业版License更新全攻略:从查看到重启一步到位

本文详细解析了人大金仓V8R3企业版License更新的完整运维流程,涵盖从诊断当前授权状态、获取与验证新文件、精准定位旧文件路径,到安全替换文件及服务重启验证的全过程。重点针对更新流程中常见的版本匹配、文件定位、权限与服务重启等关键环节提供了实战解决方案和避坑指南,帮助运维人员高效、平稳地完成授权续期。

redis7keeper的博客 905

AD2S1210与DSP28335 SPI通信中的GPIO配置陷阱与解决

本文深入剖析了AD2S1210与DSP28335进行SPI通信时,因GPIO输入限定配置不当导致数据整体右移的典型问题。文章指出,错误地将MISO引脚配置为带采样周期的同步模式是根本原因,并提供了将输入选择限制正确设置为异步模式的解决方案。同时,总结了不同应用场景下GPIO输入限定的配置原则,为高速同步通信的稳定实现提供了关键指导。

weixin_29163857的博客 146

保姆级教程:用再生龙Clonezilla Live给Ubuntu系统做全盘备份与恢复(含BIOS设置避坑)

本文提供了一份详细的Clonezilla Live教程,指导Ubuntu用户如何轻松完成全盘备份与恢复。从启动盘制作、BIOS设置避坑到备份参数解析和恢复操作,涵盖了所有关键步骤和常见问题解决方案,帮助用户高效保护系统数据。

weixin_42116058的博客 646

Windowns下Git环境配置-命令行方式

文章目录一、配置Git1.1 下载Git并安装1.2 配置本地Git用户名和邮箱1.3 注册GitHub二、生成本地公钥,放到GitHub上-SSH Key2.1 生成本地公钥命令2.2 查看生成的公钥2.3 在GitHub放上公钥并测试连通性三、创建项目实操四、可能出现的问题4.1.push不成功4.2.提示SSL的问题4.3.域名不能解析的问题4.4.如果github连接不上的问题 一、配置Git 1.1 下载Git并安装 Git官网 默认安装,根据需要修改安装路径 1.2 配置本地Git用户名和邮箱

学习工作笔记 1137

Multisim新手必看:从零搭建数字时钟仿真电路(附完整原理图)

本文详细介绍了如何使用Multisim从零开始搭建数字时钟仿真电路,涵盖晶振电路设计、计数电路实现、校时功能配置等关键步骤。通过完整的原理图和实用技巧,帮助新手快速掌握Multisim仿真设计,实现精准的数字时钟功能。

ios99的博客 328

在Mac下配置用VSCode编写C/C++程序的环境

前言    最近需要编写一些C/C++程序,由于体量都不是很大所以想要追求一个轻量化的编辑和编译环境,于是想起了在Dock栏吃灰的VSCode。通过查找资料,包括VSCode的官方文档,最终配置实现了Mac下基于VSCode的C/C++编辑环境搭建。 正文    在配置环境之前先检查一下机器上都安装了什么C++编译器,通过以下两条命令可以查看是否安装了g++/clang编译器,本人两种编...

Kalikali的专栏 5万+

Python爬虫selenium验证-中文识别点选+图片验证码案例

环境对模型进行训练,参考:https://github.com/sml2h3/dddd_trainer。能识别,但是发现默认识别率有点低,想要提升识别率,可以搭建。截图每个字符,并基于ddddocr识别。根据坐标,在验证码上进行点击。

dme.的博客 2165

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: python aiohttp使用cookie
下一篇: 使用 Python 异步爬虫抓取豆瓣电影Top250排行榜
Ghostycode
博客等级 码龄5年 132粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值