4.7正则表达式

1.字符匹配

一般字符匹配自身
匹配任意字符(换行符\n除外),一个点占一位
\转义字符,使其后一个字符改变原来的意思(\.就是.)
[......]字符集,对应的位置可以是字符集中的任意字符.字符集中的字符可以逐个列出,也可以给出范围如[abc]或[a-c] [^abc] 表示取反,即非abc

2.预定字符集匹配

\d数字:[0-9]a\dca1c
\D非数字[\D]a\Dcabc
\s匹配任何空白字符:[空格\t\r\n\f\v]a\sca c
\S非空白字符:[\S]a\Scabc
\w匹配包括下划线在内的任何字符:[A-Za-z0-9_]a\wcabc
\W匹配非字母字符,即匹配特殊字符a\Wca c

3.字符串数据词匹配

*匹配前一个字符0次或者多次
+匹配前一个字符1次或者无限次
?匹配一个字符0次或1次
{}{m匹配前一个字符m次,{m,n匹配前一个字符m至n次,若省略n次,则匹配m至无限次}

4.字符串边界匹配

^匹配字符串开头,在多行模式中匹配每一行的开头
$匹配字符串末尾,在多行模式中匹配每一行的末尾

5.在python中使用 

        5.1match方法的使用

        

# re是python内置的模块
import re# 使用 re.compile()函数将正则表达式模式 r'\d+' 编译成一个
pattern = re.compile(r'\d+')# 以下对 pattern.match() 方法参数的说明
# 参数2 开始位置 指定从字符串的哪个索引位置开始进行匹配
# 参数3 结束位置 指定匹配操作的结束索引位置
# 结束位置是不包含的,即匹配操作会在该索引之前结束
# 匹配一次然后结束,即只要找到第一个匹配就停止匹配
# 匹配一次就结束,即找到第一个匹配就停止匹配
m1 = pattern.match('one12345678',3,7)# 调用m1对象的group方法返回匹配到的字符串
print(m1.group())

        5.2 search方法的使用

import repattern = re.compile(r'\d+')m1 = pattern.search('one123456789two')
print(m1.group())# 也是一次匹配

        5.3findall方法的使用

       

import repattern = re.compile(r'\d+')result = pattern.findall('hello 123 world 456')print(result)# pattern.findall() 是 Pattern 对象的一个方法,用于在指定的字符串中查找所有匹配正则表达式模式的子字符串。
# 'hello 123 world 456' 是要搜索的字符串。
# findall() 方法返回一个列表,列表中的每个元素都是一个匹配到的子字符串。如果没有找到匹配项,返回一个空列表。

6.split函数的使用

import re# 定义一个字符串str1 = 'a,b,c,d,e'# 使用字符串的split方法分割print(str.split(','))str2 = 'a,b;;c     d'# 编译一个正则表达式patterm = re.compile(r'[\s,;]+')# 使用编译好的正则表达式模式对字符串 str2进行分割
print(pattern.split(str2))

6.sub方法的使用

import restring = '<h1 class="test1">Hello World</h1>'# 编译一个正则表达式 匹配单个数字pattern = re.compile(r'\d')# 使用sub方法将字符串匹配到的数字 换成2
print(pattern.sub('2',string))# 使用第三个参数  是更换几次
print(pattern.sub('2',string,1))# 编译一个正则表达式模式,用于匹配特定格式的 HTML 标签,并将 class 属性的值命名为 classname
pattern = re.compile(r'(.\d)\sclass=(?P<classname>.*>?)".*?</(\\)')
# 使用search方法
print(pattern.search(string).gorup())# 定义一个函数 fun,用于处理替换操作
def fun(m):"""该函数用于处理正则表达式替换操作。:param m: 匹配对象,包含匹配到的信息:return: 替换后的字符串"""# 从匹配对象中获取 classname 组的内容,并拼接字符串return 'after sub' +m.group('classname')# 使用 sub 方法将字符串 string 中匹配到的内容替换为 fun 函数处理后的结果,并打印结果
print(pattern.sub(fun,string))

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

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

相关文章

Fortran 中读取 MATLAB 生成的数据文件

在 Fortran 中读取 MATLAB 生成的数据文件&#xff0c;可以通过以下几种方法实现&#xff0c;包括使用开源工具和手动解析&#xff1a; 1. 使用开源工具&#xff1a;MATFOR MATFOR 是一个商业/开源混合工具&#xff08;部分功能免费&#xff09;&#xff0c;提供 Fortran 与 M…

压测工具开发实战篇(四)——client子窗口功能

你好&#xff0c;我是安然无虞。 文章目录 树控件添加文件补充学习: 函数定义中循环体里的局部变量补充学习: 动态添加对象属性 刷新文件上下文菜单 (右键菜单)实现右键菜单功能 编辑节点文本 在学习本篇文章之前, 建议先看一下上篇介绍MDI子窗口的文章: 压测工具开发实战篇(三…

PyTorch使用(4)-张量拼接操作

文章目录 张量拼接操作1. torch.cat 函数的使用1.1. torch.cat 定义1.2. 语法1.3. 关键规则 1.4. 示例代码1.4.1. 沿行拼接&#xff08;dim0&#xff09;1.4.2. 沿列拼接&#xff08;dim1&#xff09;1.4.3. 高维拼接&#xff08;dim2&#xff09; 1.5. 错误场景分析1.5.1. 维度…

linux命令之yes(Linux Command Yes)

linux命令之yes 简介与功能 yes 命令在 Linux 系统中用于重复输出一行字符串&#xff0c;直到被杀死&#xff08;kill&#xff09;。该命令最常见的用途是自动化控制脚本中的交互式命令&#xff0c;以便无需用户介入即可进行连续的确认操作。 用法示例 基本用法非常简单&am…

《算法笔记》10.3小节——图算法专题->图的遍历 问题 B: 连通图

题目描述 给定一个无向图和其中的所有边&#xff0c;判断这个图是否所有顶点都是连通的。 输入 每组数据的第一行是两个整数 n 和 m&#xff08;0<n<1000&#xff09;。n 表示图的顶点数目&#xff0c;m 表示图中边的数目。如果 n 为 0 表示输入结束。随后有 m 行数据…

使用Prometheus监控systemd服务并可视化

实训背景 你是一家企业的运维工程师&#xff0c;需将服务器的systemd服务监控集成到Prometheus&#xff0c;并通过Grafana展示实时数据。需求如下&#xff1a; 数据采集&#xff1a;监控所有systemd服务的状态&#xff08;运行/停止&#xff09;、资源占用&#xff08;CPU、内…

OpenCV--图像边缘检测

在计算机视觉和图像处理领域&#xff0c;边缘检测是极为关键的技术。边缘作为图像中像素值发生急剧变化的区域&#xff0c;承载了图像的重要结构信息&#xff0c;在物体识别、图像分割、目标跟踪等众多应用场景中发挥着核心作用。OpenCV 作为强大的计算机视觉库&#xff0c;提供…

Rollup详解

Rollup 是一个 JavaScript 模块打包工具&#xff0c;专注于 ES 模块的打包&#xff0c;常用于打包 JavaScript 库。下面从它的工作原理、特点、使用场景、配置和与其他打包工具对比等方面进行详细讲解。 一、 工作原理 Rollup 的核心工作是分析代码中的 import 和 export 语句…

Chapter 7: Compiling C++ Sources with CMake_《Modern CMake for C++》_Notes

Chapter 7: Compiling C Sources with CMake 1. Understanding the Compilation Process Key Points: Four-stage process: Preprocessing → Compilation → Assembly → LinkingCMake abstracts low-level commands but allows granular controlToolchain configuration (c…

5分钟上手GitHub Copilot:AI编程助手实战指南

引言 近年来&#xff0c;AI编程工具逐渐成为开发者提升效率的利器。GitHub Copilot作为由GitHub和OpenAI联合推出的智能代码补全工具&#xff0c;能够根据上下文自动生成代码片段。本文将手把手教你如何快速安装、配置Copilot&#xff0c;并通过实际案例展示其强大功能。 一、…

谢志辉和他的《韵之队诗集》:探寻生活与梦想交织的诗意世界

大家好&#xff0c;我是谢志辉&#xff0c;一个扎根在文字世界&#xff0c;默默耕耘的写作者。写作于我而言&#xff0c;早已不是简单的爱好&#xff0c;而是生命中不可或缺的一部分。无数个寂静的夜晚&#xff0c;当世界陷入沉睡&#xff0c;我独自坐在书桌前&#xff0c;伴着…

Logo语言的死锁

Logo语言的死锁现象研究 引言 在计算机科学中&#xff0c;死锁是一个重要的研究课题&#xff0c;尤其是在并发编程中。它指的是两个或多个进程因争夺资源而造成的一种永久等待状态。在编程语言的设计与实现中&#xff0c;如何避免死锁成为了优化系统性能和提高程序可靠性的关…

深入理解矩阵乘积的导数:以线性回归损失函数为例

深入理解矩阵乘积的导数&#xff1a;以线性回归损失函数为例 在机器学习和数据分析领域&#xff0c;矩阵微积分扮演着至关重要的角色。特别是当我们涉及到优化问题&#xff0c;如最小化损失函数时&#xff0c;对矩阵表达式求导变得必不可少。本文将通过一个具体的例子——线性…

real_time_camera_audio_display_with_animation

视频录制 import cv2 import pyaudio import wave import threading import os import tkinter as tk from PIL import Image, ImageTk # 视频录制设置 VIDEO_WIDTH = 640 VIDEO_HEIGHT = 480 FPS = 20.0 VIDEO_FILENAME = _video.mp4 AUDIO_FILENAME = _audio.wav OUTPUT_…

【Pandas】pandas DataFrame astype

Pandas2.2 DataFrame Conversion 方法描述DataFrame.astype(dtype[, copy, errors])用于将 DataFrame 中的数据转换为指定的数据类型 pandas.DataFrame.astype pandas.DataFrame.astype 是一个方法&#xff0c;用于将 DataFrame 中的数据转换为指定的数据类型。这个方法非常…

Johnson

理论 全源最短路算法 Floyd 算法&#xff0c;时间复杂度为 O(n)跑 n 次 Bellman - Ford 算法&#xff0c;时间复杂度是 O(nm)跑 n 次 Heap - Dijkstra 算法&#xff0c;时间复杂度是 O(nmlogm) 第 3 种算法被 Johnson 做了改造&#xff0c;可以求解带负权边的全源最短路。 J…

Exce格式化批处理工具详解:高效处理,让数据更干净!

Exce格式化批处理工具详解&#xff1a;高效处理&#xff0c;让数据更干净&#xff01; 1. 概述 在数据分析、报表整理、数据库管理等工作中&#xff0c;数据清洗是不可或缺的一步。原始Excel数据常常存在格式不统一、空值、重复数据等问题&#xff0c;影响数据的准确性和可用…

(三十七)Dart 中使用 Pub 包管理系统与 HTTP 请求教程

Dart 中使用 Pub 包管理系统与 HTTP 请求教程 Pub 包管理系统简介 Pub 是 Dart 和 Flutter 的包管理系统&#xff0c;用于管理项目的依赖。通过 Pub&#xff0c;开发者可以轻松地添加、更新和管理第三方库。 使用 Pub 包管理系统 1. 找到需要的库 访问以下网址&#xff0c…

代码随想录算法训练营第三十五天 | 416.分割等和子集

416. 分割等和子集 题目链接&#xff1a;416. 分割等和子集 - 力扣&#xff08;LeetCode&#xff09; 文章讲解&#xff1a;代码随想录 视频讲解&#xff1a;动态规划之背包问题&#xff0c;这个包能装满吗&#xff1f;| LeetCode&#xff1a;416.分割等和子集_哔哩哔哩_bilibi…

HTTP 教程 : 从 0 到 1 全面指南 教程【全文三万字保姆级详细讲解】

目录 HTTP 的请求-响应 HTTP 方法 HTTP 状态码 HTTP 版本 安全性 HTTP/HTTPS 简介 HTTP HTTPS HTTP 工作原理 HTTPS 作用 HTTP 与 HTTPS 区别 HTTP 消息结构 客户端请求消息 服务器响应消息 实例 HTTP 请求方法 各个版本定义的请求方法 HTTP/1.0 HTTP/1.1 …