当前位置: 首页 > news >正文

python正则表达式

概述

  • 为什么要学习正则表达式
    在实际的开发过程中,经常会有查找符合某些规则的字符串,如邮箱、图片地址、电话号码等。想匹配或者查找符合某些规则的字符串就可以使用正则表达式了。

  • 什么是正则表达式
    正则表达式描述了一种字符串匹配的模式,是一种特定的字符串模式,这个模式是通过一些特殊的符号组成的。

  • 正则表达式的功能

    • 数据验证(表单验证:如手机、邮箱、IP地址)
    • 数据检索 (数据检索、数据抓取) => 爬虫功能
    • 数据隐藏 (136****6221)
    • 数据过滤 (论坛敏感关键字过滤)

re 模块

Python中需要通过正则表达式对字符串进行匹配时,可以使用re模块

re 模块的使用

# 1. 导入re模块
import re
# 2. 使用match方法进行匹配操作
result = re.match(pattern正则表达式, string要匹配的字符串,flags=0)
# flags: 可选,表示匹配模式,比如忽略大小写,多行匹配等
# 3 如果匹配成功,使用group方法提取数据
result.group()

match 函数

match 函数从左往右,逐个字符的匹配,不会跳过某个字符,即 全词匹配
例:字符匹配

# 正则表达式 .it 表示 匹配 3个字符,第一个字符是任意字符,第二个字符是i,第三个字符是t
result = re.match('.it','ait')
# 判断是否匹配成功,匹配成功就打印匹配到的内容,没有匹配到就提示
if result != None:print(result.group()) # ait
else:print('匹配失败')

正则表达式符号

符号说明
.任意一个字符
\.取消 . 的特殊用法,就是一个普通的.
a代表1个字符a
[abc]表示a,b,c中的任意1个字符
[^abc]代表除了a,b,c以外的任意一个字符
[0-9]代表任意一个数字
\d代表任意一个数字
\D除了整数外的任意1个字符 \D = [^0-9]
\s匹配空白,空格 tab
\S匹配非空白
\w匹配非特殊字符
\W匹配特殊字符
?前面的内容出现0次或者1次,如 a? 表示 a 出现 1次
*前面的内容出现 0 ~ n 次
+前面的内容出现 1 ~ n 次
{m}匹配前一个字符出现m次
{m,}匹配前一个字符至少出现m次
{m,n}匹配前一个字符出现从m到n次
^匹配字符串开头
$匹配字符串结尾
|匹配左右任意一个表达式
(ab)将括号中字符作为一个分组
\num引用分组num匹配到字符串,如 \1 表示引用第1组的数据, \2 表示引用第2组的数据
http://www.dtcms.com/a/241300.html

相关文章:

  • DAY 44 训练
  • 卷积核、FIR滤波器与LTI系统——一回事
  • ​​企业大模型服务合规指南:深度解析备案与登记制度​​
  • 第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
  • CppCon 2015 学习:Time Programming Fundamentals
  • UML 2.0 图的细分类别及其应用
  • 【大厂机试题解法笔记】食堂供餐
  • 如何删除linux空的文件夹
  • deepbayes lecture2:变分推断
  • “详规一张图”——新加坡土地利用数据
  • Open3D 对点云进行去噪(下采样、欧式聚类分割)01
  • 基于算法竞赛的c++编程(25)指针简单介绍和简单应用
  • 【Vue】scoped+组件通信+props校验
  • DingDing机器人群消息推送
  • 二维FDTD算法仿真
  • JVM如何优化
  • Qt学习及使用_第1部分_认识Qt---Qt开发基本流程
  • AirPosture | 通过 AirPods 矫正坐姿
  • while/do while/for循环几个小细节
  • 免费数学几何作图web平台
  • React中子传父组件通信操作指南
  • JavaScript的ArrayBuffer与C++的malloc():两种内存管理方式的深度对比
  • Linux进程信号(一)
  • LLMs 系列实操科普(2)
  • Spring Boot面试题精选汇总
  • 如何做好一份技术文档?从规划到实践的完整指南
  • React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构
  • ubuntu22.04 安装docker 和docker-compose
  • 安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
  • 在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module