Python正则表达式简单教程

news2024/10/6 12:24:02

当涉及到处理文本数据时,正则表达式是一个非常有用的工具。它可以用于在字符串中进行模式匹配、搜索、替换等操作。以下是一个简单的Python正则表达式教程,从基础开始介绍如何使用正则表达式。

什么是正则表达式?

正则表达式(Regular Expression,简称Regex或RegExp)是一种用来描述、匹配一系列字符串的模式。它由一些特殊字符和普通字符组成,可以用来进行字符串匹配、搜索和替换等操作。

在Python中使用正则表达式

Python标准库中内置了re模块,它提供了正则表达式的支持。以下是一些常用的re模块函数:

  • re.search(pattern, string): 在给定的字符串中搜索匹配给定模式的第一个位置。
  • re.match(pattern, string): 从字符串的开头开始匹配给定模式。
  • re.findall(pattern, string): 返回所有匹配给定模式的非重叠子字符串的列表。
  • re.finditer(pattern, string): 返回一个迭代器,产生所有匹配给定模式的非重叠子字符串的匹配对象。
  • re.sub(pattern, replacement, string): 将给定模式匹配的字符串替换为指定的字符串。

常用的正则表达式元字符

  • .: 匹配任意字符,除了换行符。
  • *: 匹配前一个字符0次或多次。
  • +: 匹配前一个字符1次或多次。
  • ?: 匹配前一个字符0次或1次,使其变为可选。
  • \d: 匹配任意数字字符。
  • \w: 匹配任意字母、数字或下划线字符。
  • \s: 匹配任意空白字符(空格、制表符、换行等)。
  • ^: 匹配字符串的开头。
  • $: 匹配字符串的结尾。
  • [...]: 匹配方括号中的任意字符。
  • |: 逻辑或,用于在模式中指定多个可选项。

示例

以下是一些正则表达式在Python中的使用示例:

import re

# 搜索匹配的字符串
text = "Hello, my email is example@example.com"
pattern = r'\w+@\w+\.\w+'
match = re.search(pattern, text)
if match:
    print("Email found:", match.group())

# 查找所有匹配的字符串
text = "apple, banana, cherry, date"
pattern = r'\w+'
matches = re.findall(pattern, text)
print("Matches:", matches)

# 替换字符串
text = "Hello, my name is Alice."
pattern = r'Alice'
replacement = "Bob"
new_text = re.sub(pattern, replacement, text)
print("New text:", new_text)

请注意,正则表达式中的反斜杠在字符串中需要进行转义,因此我们使用原始字符串(以r开头)来避免不必要的转义。

这只是一个入门级的教程,正则表达式在复杂的文本处理中可以发挥更大的作用。如果您想深入了解正则表达式的更多内容,可以查阅官方文档或其他教程资源。

正则表达式匹配规则
\w 匹配字母、数字及下划线
\W 匹配不是字母、数字及下划线的字符
\s 匹配任意空白字符,等价于 [\t\n\r\f]
\S 匹配任意非空字符
\d 匹配任意数字,等价于 [0-9]
\D 匹配任意非数字的字符
\A 匹配字符串开头
\Z 匹配字符串结尾,如果存在换行,只匹配到换行前的结束字符串
\z 匹配字符串结尾,如果存在换行,同时还会匹配换行符
\G 匹配最后匹配完成的位置
\n 匹配一个换行符
\t 匹配一个制表符
^ 匹配一行字符串的开头
$ 匹配一行字符串的结尾
. 匹配任意字符,除了换行符,当 re.DOTALL 标记被指定时,则可以匹配包括换行符的任意字符
[…] 用来表示一组字符,单独列出,比如 [amk] 匹配 a、m 或 k
[^…] 不在 [] 中的字符,比如 匹配除了 a、b、c 之外的字符

  • 匹配 0 个或多个表达式
  • 匹配 1 个或多个表达式
    ? 匹配 0 个或 1 个前面的正则表达式定义的片段,非贪婪方式
    {n} 精确匹配 n 个前面的表达式
    {n, m} 匹配 n 到 m 次由前面正则表达式定义的片段,贪婪方式
    a b 匹配 a 或 b
    () 匹配括号内的表达式,也表示一个组

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/954603.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nextTick不能获取到图片的宽高度

nextTick方法本身并不能直接获取图片的宽高度,它只是用于在下次DOM更新循环结束后执行回调函数。要获取图片的宽高度,需要在回调函数中使用其他方法来获取。 一种常见的方法是使用Image对象来加载图片,并在加载完成后获取图片的宽高度。可以…

01JVM_内存结构

一、什么是JVM 1.JVM的定义 Java程序的运行环境,java二进制字节码的运行环境 2.JVM的好处 ①一次编写,到处运行 ②自动内存管理,垃圾回收功能 ③数组下标越界检查 ④多态 3.jvm,jre,jdk的比较 3.常见的JVM 主…

Windows下Git Bash调用rsync

rsync 提供了补充只需要在git安装目录下放入对应的文件即可。 需要将这个三个文件放到git的bin目录下 如果是默认安装路径是如下: C:\Program Files\Git\usr\bin 然后大功告成。

软件测试Day3|软件测试理论01

目录 1.缺陷1.1 定义1.2 缺陷由来 2. 软件测试的定义和目的2.1 软件测试定义2.2 软件测试目的 3. 软件开发模型3.1 生命周期3.2 瀑布模型3.3 螺旋模型3.4 迭代模型3.5 敏捷开发模型-scrum3.6 增量模型3.7 快速原型模型 4. 软件测试流程和模型4.1 软件测试工作流程4.2 软件测试模…

【AntV】canvas表格s2完全封装手册

前言 由于我们业务中有很多地方需要有纵向复制,刷选等操作,一般的传统表格并不支持。 目前支持度较好的葡萄城表格与handsontable都需要收费,而s2作为一款轻量级开源表单较为符合我们的需求,但是由于s2仍然不够成熟,有非常多的功能需要自定义。 我在公司对s2做了大量封…

100天精通Golang(基础入门篇)——第20天:Golang 接口 深度解析☞从基础到高级

🌷🍁 博主猫头虎🐅🐾 带您进入 Golang 语言的新世界✨✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文并茂&#x1f…

FI 数据源(AP) 及 增量逻辑

AP 一般AP里要分析行项目数据,交易数据,历史付款信息。 还有一些供应商主数据。 基础的抽取数据源就是下面几个: 0FI_AP_4: Vendors: Line Items with Delta Extrcation0FI_AP_6: Vendor Sales Figures via Delta Extraction0FI_AP_7: Ve…

SQLPro Studio for Mac:强大的SQL开发和管理工具

SQLPro Studio for Mac是一款强大的Mac上使用的SQL开发和管理工具,它支持各种数据库,包括MySQL,PostgreSQL,SQLite等。使用 SQLPro Studio,您可以轻松地连接和管理您的数据库,执行SQL查询和脚本&#xff0c…

【python爬虫】8.温故而知新

文章目录 前言回顾前路代码实现体验代码功能拆解获取数据解析提取数据存储数据 程序实现与总结 前言 Hello又见面了!上一关我们学习了爬虫数据的存储,并成功将QQ音乐周杰伦歌曲信息的数据存储进了csv文件和excel文件。 学到这里,说明你已经…

国标视频融合云平台EasyCVR视频汇聚平台关于远程控制的详细介绍

EasyCVR国标视频融合云平台是一个能在复杂网络环境下统一汇聚、整合和集中管理各类分散视频资源的平台。该平台提供了多种视频能力和服务,包括视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、集群、电子地图、H.265视频自动转码和智能分析等…

一种基于WinDump自动抓包实现方法

本发明的技术方案包括以下步骤和组件: 配置抓包参数:设置抓包的IP、端口以及过滤包大小等参数,以控制抓取的数据范围。循环自动抓包:利用WinDump工具实现循环自动抓包功能,类似于记录日志的方式保留抓包数据。当抓包数…

年收入超10亿美金?OpenAI 的“赚钱戏法”

点击关注 文丨郝鑫、刘雨琦,编丨刘雨琦 “我当时见到他不到三分钟,就在想,啊,19岁的比尔盖茨估计也就这样了吧!” 在YC创始人Paul Graham(格雷厄姆)的眼里,28岁的Sam Altman与19…

香港服务器快还是台湾服务器快?

​  基于机房位置不同,香港服务器相对于台湾服务器在访问速度方面有一定的优势。香港服务器拥有CN2线路,因此访问速度较快。在网络服务商方面,中华电信等台湾服务商提供的带宽也具有很高的性价比。 香港服务器对大陆用户的影响 对于大陆用户…

如何将电子画册生成二维码,扫码查看产品图册?

随着移动互联网的发展,二维码已经成为了人们生活中不可或缺的一部分。无论是支付宝、微信支付的扫码支付,还是商家的促销活动、产品包装上的二维码,都展示了二维码的广泛应用。 电子画册也果不其然,它也可以生成二维码&#xff0c…

高德地图jsapi报错INVALID_USER_SCODE

看了各种网上方法,还是搞不定。无奈在高德开放平台提了工单。 很快高德的技术人员就给出了答复“您好,您检查一下您的安全密钥是否在key之前,安全密钥设置必须是在JS API 脚本加载之前进行设置,否则设置无效。” 并给出了推荐的…

使用 zipfile创建文件压缩工具

在本篇博客中,我们将使用 wxPython 模块创建一个简单的文件压缩工具。该工具具有图形用户界面(GUI),可以选择源文件夹中的文件,将其压缩为 ZIP 文件,并将压缩文件保存到目标文件夹中。 C:\pythoncode\new\z…

如何提高工业网关的数据传输速度?

工业网关是工业物联网系统中不可或缺的设备,提高工业网关的数据采集、传输速度,是保障和优化物联网系统运营效率的基础。如何提高工业物联网关的数据传输速度?本篇就为大家简单介绍一下。 1、选用高品质网络设备 选用具有足够带宽容量的高质…

深圳发墨西哥专线要多久才能清关?

深圳发往墨西哥专线的货物清关时间会受到多种因素的影响,包括货物的性质、数量、海关政策、运输方式以及货物的文件准备等。下面将详细介绍这些因素对清关时间的影响。 1.货物的性质和数量是影响清关时间的重要因素之一。 一般来说,墨西哥专线中普通商品…

C语言_分支和循环语句(3)

文章目录 前言一、猜数字游戏1.1.电脑随机生成一个数(1~100);1.2.猜数字:1.3.玩完一把不过瘾,可以继续玩,不用退出程序。1.4.rand 和 srand 之间的联系5.猜数字游戏源码 二、go to 语句2.1.例如&#xff1a…

PMP项目管理主要学习内容是什么?

PMP项目管理是指根据美国项目管理学会(Project Management Institute,简称PMI)制定的项目管理知识体系和方法论进行项目管理的一种认证。PMP主要关注项目的规划、执行和控制等方面的知识和技能。 下面是PMP项目管理《PMBOK指南》第六版的主要学习内容: …