第8课:正则表达式

课程目标

  • 理解正则表达式的基本概念
  • 掌握常用的正则表达式模式
  • 学习Python中re模块的使用
  • 能够编写简单的正则表达式

1. 正则表达式基础

1.1 什么是正则表达式

正则表达式是一种用于匹配字符串模式的工具,可以用于搜索、替换和验证文本。

1.2 基本语法

import re# 基本匹配
text = "Hello, World!"
pattern = r"Hello"
match = re.search(pattern, text)
if match:print("找到匹配:", match.group())

2. 常用模式

2.1 字符类

import retext = "The cat sat on the mat."# 匹配单个字符
pattern = r"cat"
matches = re.findall(pattern, text)
print("匹配结果:", matches)  # ['cat']# 字符类 [abc] 匹配a、b或c中的任意一个
pattern = r"[cat]"
matches = re.findall(pattern, text)
print("字符类匹配:", matches)# 范围字符类 [a-z] 匹配小写字母
pattern = r"[a-z]+"
matches = re.findall(pattern, text)
print("小写字母匹配:", matches)# 否定字符类 [^abc] 匹配除了a、b、c之外的字符
pattern = r"[^aeiou\s]+"
matches = re.findall(pattern, text)
print("非元音字母匹配:", matches)

2.2 量词

import retext = "aaabbbcccddd"# * 匹配0个或多个
pattern = r"a*"
matches = re.findall(pattern, text)
print("a*匹配:", matches)# + 匹配1个或多个
pattern = r"a+"
matches = re.findall(pattern, text)
print("a+匹配:", matches)# ? 匹配0个或1个
pattern = r"a?"
matches = re.findall(pattern, text)
print("a?匹配:", matches)# {n} 匹配恰好n个
pattern = r"a{3}"
matches = re.findall(pattern, text)
print("a{3}匹配:", matches)# {n,m} 匹配n到m个
pattern = r"a{2,4}"
matches = re.findall(pattern, text)
print("a{2,4}匹配:", matches)

2.3 特殊字符

import retext = "Hello\nWorld\tPython"# \d 匹配数字
pattern = r"\d+"
matches = re.findall(pattern, text)
print("数字匹配:", matches)# \w 匹配单词字符(字母、数字、下划线)
pattern = r"\w+"
matches = re.findall(pattern, text)
print("单词字符匹配:", matches)# \s 匹配空白字符
pattern = r"\s+"
matches = re.findall(pattern, text)
pri

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小迪安全v2023学习笔记(七十一讲)—— Python安全反序列化反编译格式化字符串安全

文章目录前记WEB攻防——第七十一天Python安全&反序列化利用链&PYC文件反编译&格式化字符串安全Python - PYC-反编译文件出源码介绍演示Python - 反序列化-调用链&魔术方法各类语言序列化和反序列化函数序列化和反序列化含义Python中常用的序列化/反序列化函数…

Linux->多线程2

目录 本文说明: 一:线程互斥 1:缺乏互斥的抢票系统 2:抢票系统分析及概念回顾 3:互斥锁 ①:相关接口 a:定义锁 b:初始化锁 c:加锁 d:解锁 e&#x…

[OpenVela] 音乐播放器1.0

code: https://github.com/lvy010/vela/tree/main/music_player OpenVela 音乐播放器 基于 OpenVela 系统的嵌入式音乐播放器,使用 LVGL 图形库开发,支持 Wi-Fi 连接和本地音频播放。 📋 目录 项目简介功能特性系统要求项目结构快速开始配…

学习 Android (十六) 学习 OpenCV (一)

学习 Android (十六) 学习 OpenCV (一) 在前几个章节中,我们对 NDK 相关的开发有了一定的了解,所谓磨刀不误砍柴工,有了这些基础的知识储备之后,我们可以来简单上手一下 OpenCV 相关的知识,接下来跟随作者一起来学习吧…

人工智能之数学基础:离散型随机变量

本文重点 前面我们介绍了随机变量具有两个类型,一个类型是离散型随机变量,另外一个类型是连续型随机变量。我们先来学习离散型随机变量。 离散型随机变量 离散型随机变量 X 所有可能取的值为X1,X2...,并且有: 则称 p1 , p2, … 为离散型随机变量 X 的概率质量函数。其中 …

【Java开发日记】我们来讲一讲 Channel 和 FileChannel

目录 Channel FileChannel 打开 FileChannel 从 FileChannel 读数据 写数据到 FileChannel 关闭 FileChannel 示例 读数据 写数据 Channel 在 NIO 中,Channel 和 Buffer 是相辅相成的,只能从 Channel 读取数据到 Buffer 中,或者从 …

【力扣】2623. 记忆函数——函数转换

【力扣】2623. 记忆函数——函数转换 文章目录【力扣】2623. 记忆函数——函数转换一、题目二、解决方案1、概述1.1纯函数2、在Web开发中的记忆化用途2.1缓存网站文件(1)React 组件(2)缓存 API 调用3、算法中的记忆化4、专业实现的…

数据结构 -- 队列

队列的核心定义队列是受限线性表,仅允许在一端(队尾)插入元素、另一端(队头)删除元素,遵循 “先进先出(FIFO,First In First Out)” 原则。队列的结构与操作端队尾&#…

为什么hive在处理数据时,有的累加是半累加数据

在 Hive 处理数据时,“半累加数据” 指的是部分字段保留历史状态、部分字段随业务变化累加或更新的场景,这种模式广泛存在于需要兼顾 “历史追溯” 和 “增量更新” 的业务中。以下是具体例子,帮助理解其本质:例子 1:用…

【贪心算法】day2

📝前言说明: 本专栏主要记录本人的贪心算法学习以及LeetCode刷题记录,按专题划分每题主要记录:(1)本人解法 本人屎山代码;(2)优质解法 优质代码;&#xff…

Spring Boot整合RabbitMQ进阶实战:TTL、死信队列与延迟队列深度解析

Spring Boot整合RabbitMQ进阶实战:TTL、死信队列与延迟队列深度解析 一、TTL机制深度解析:从原理到落地 在RabbitMQ的消息生命周期管理中,TTL(Time-To-Live) 是核心机制之一——它通过设置消息的"存活时长"&…

最新react,vue 解决无法使用js触发点击,解决方案

const elements document.getElementsByClassName(remove-btn-eIaRy9 select-none semi-dropdown-item);if (elements.length > 0) {const element elements[0];const rect element.getBoundingClientRect();// 模拟鼠标移动到元素上const mouseOverEvent document.crea…

一键部署开源 Coze Studio

文章目录一、简介1、什么是 Coze Studio2、参考地址二、安装部署1、安装docker2、安装git3、下载core4、配置公网可用5、登录成功一、简介 1、什么是 Coze Studio Coze Studio 是一站式 AI Agent 开发工具。提供各类最新大模型和工具、多种开发模式和框架,从开发到…

Python Excel 通用筛选函数

案例目的 第一个函数从指定文件路径读取CSV数据并转换为DataFrame,第二个函数使用灵活的条件筛选DataFrame。 示例数据!&idxMarketCURRPMTERMANT……*1JPUSD10…*1CHINAEUR00…*1USAUSD10…*2JPJPY10…*3USACNY11…*4CHINACNY00…*5JPUSD11…*6JPJPY00…假定数据…

鸿蒙中内存泄漏分析

引言:什么是内存泄漏? 想象一下你的手机是一个酒店,每个应用程序都是酒店的客人。当客人(应用程序)使用房间(内存)时,酒店经理(系统)会分配房间给他们使用。…

将windows 的路径挂载到Ubuntu上进行直接访问

1、下载hane NFS Server安装2、安装后打开3、在电脑上创建个共享文件夹,我这里选择D:\share4、在hane win nfs server 软件上选择Edit\preferences5、选择exports6、选择Edit exports file, 在最后添加D:\share -name:nfs,然后点击Save如果添加root权限使…

开源 python 应用 开发(十一)短语音转文本

最近有个项目需要做视觉自动化处理的工具,最后选用的软件为python,刚好这个机会进行系统学习。短时间学习,需要快速开发,所以记录要点步骤,防止忘记。 链接: 开源 python 应用 开发(一&#xf…

【C++闯关笔记】封装②:友元与模板

系列文章目录 第零篇:从C到C入门:C有而C语言没有的基础知识总结-CSDN博客 第一篇:【C闯关笔记】封装①:类与对象-CSDN博客 第二篇:【C闯关笔记】封装②:友元与模板-CSDN博客 第三篇:【C闯关笔…

Python 爬虫教程 | 豆瓣 TOP250 数据抓取与分析实战

一、项目背景与数据价值豆瓣TOP250是影视行业的重要榜单,具有以下数据价值:评分与评价人数:衡量电影市场热度;导演与演员信息:分析人才价值与影视趋势;类型 / 地区 / 年份:洞察电影类型与年代变…

第04章 SPSS简介与数据库构建

参考:SPSS实战与统计思维 - 武松编著 - 微信读书 4.1 SPSS简介 发展历史 全称Statistical Product and Service Solutions,由美国斯坦福大学三位研究生于1968年开发。 对比其他软件成立时间:SAS(1976年)、Stata&…