文本操作基础知识:正则表达式
目录
摘要:
一、语法
二、匹配模式pattern
1、普通字符[ ]
2、限定字符
3、定位字符
4、运算字符( )
三、修饰符flags
四、各语言的正则使用
1、Python的re
参考资料:
摘要:
常用匹配:[A-C]、[^A-C]、\w、\d、\n、\r、\t、*、+、?、{n,m}。
python的re.findall函数
一、语法
/pattern/flags
pattern:表示匹配模式,需要匹配的具体内容。
flags:表示修饰符。
二、匹配模式pattern
1、普通字符[ ]
匹配多个字符条件要用[],单个字符无需使用中括号括起来。例:/A/g和/[AB]/g。二者的区别在于前者只匹配单个字符A,而后者匹配单个字符A或B。
| 符合 | 解释 |
|---|---|
| [ABC] | 匹配单个字符 |
| [A-C] | 匹配A-C单个字符 |
| [^ABC] | 匹配除了ABC外的单个字符 |
| \S | 匹配非空字符,不包括回车换行 |
| \s | 匹配空字符,包括回车换行 |
| \w | 匹配字母、、数字、下划线等同于 [A-Za-z0-9_] |
| \d | 匹配单个数字等同于[0-9] |
| \t | 匹配一个制表符 |
| \v | 匹配一个垂直制表符 |
2、限定字符
普通字符只能匹配单个,限定字符可以匹配多个连起来的,主要用于匹配字符串。
| 符号 | 解释 |
|---|---|
| . | 匹配除了换行符外的单个字符等同于[^\n\r] |
| * | 匹配子表达式子零次或多次,例:O* |
| + | 匹配子表达式一次或多次,例:O+ |
| ? | 匹配子表达式零次或一次,例:O? |
| \ | 转义字符,用于匹配特殊字符。 |
| | | 表示或 |
| {n} | 匹配固定n个字符,例:O{2}匹配food。 |
| {n,} | 至少匹配n次。 |
| {n,m} | 至少匹配n次,至多匹配m次。 |
3、定位字符
^匹配字符段落的开头,$匹配段落的结尾。
| 符号 | 解释 |
|---|---|
| ^ | 匹配字符串开头 |
| $ | 匹配字符串结尾 |
| \b | 匹配单词边界 |
| \B | 匹配非单词边界 |
案例:匹配字符串开头
字符段开头会有一个非可见的字符,匹配的是这个,^he则是匹配he开头的字符段(这种状态要加上多行模式。

4、运算字符( )
了解即可,以下做个简单的介绍.。
| 字符 | 解释 |
|---|---|
| (?=pattern) | 匹配 pattern 但不获取匹配结果(不包括匹配模式字符)。 |
| (?:pattern) | 匹配 pattern 但获取匹配结果(包括匹配模式字符) |
| (?!pattern) | 匹配不在pattern内的字符(不包括匹配模式字符)。 |
| (?<=pattern) | 与(?=pattern)类似,只不过(?=pattern)只能放在查询字符串末尾,(?<=pattern)只能放在查询字符串开头。 |
| (?<!pattern) | 与(?!pattern)类似,只不过(?!pattern)只能放在查询字符串末尾,(?<!pattern)只能放在查询字符串开头。 |
测试:?: 和 ?=
前者进行了结果获取。

后者只是匹配,并没有获取结果。

三、修饰符flags
常用的修饰符为//i和//g,可以混合搭配使用。

案例:全局忽略大小写匹配ABC字符串
/ABC/gi
四、各语言的正则使用
1、Python的re
要引入re库:import re
import re
Python的re库,无需按照正则表达式的语法,也就是两个双斜杠,修饰符模块由于python自定,这里举例常用的两个函数一个是全局搜索re.findall和全局替换re.sub。
python正则修饰符模块
re模块中flags的常用属性:
标志位,用于控制正则表达式的匹配方式。
- re.I:忽略大小写
- re.L:表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
- re.M:多行模式
- re.S:即为 . ,并且包括换行符在内的任意字符(.不包括换行符)
- re.U:表示特殊字符集 \w, \W, \b, \B, \s, \S, \d, \D 依赖于 Unicode 字符属性数据库
- re.X:为了增加可读性,忽略空格和 # 后面的注释
案例:re.findall全局搜索返回list
findall:查找整个字符串,返回一个list
- 语法:re.findall(pattern, string, flags=0)
- 解释:pattern:表示模式字符串,由要匹配的正则表达式转换而来。
string:表示要匹配的字符串。
flags:可选参数,表示标志位,用于控制匹配方式,如是否区分字母大小写
import re
str="Sunlan love apple lSunlan"
c=re.findall("[A-Z]",str,re.I)
print(c)
案例:re.sub全局替换返回
sub:查找字符串中所有匹配的数据进行替换
- 语法:re.sub(pattern, repl, string[,count=0][,flags=0])
- 解释:pattern:表示模式字符串,由要匹配的正则表达式转换而来。
repl:表示替换的字符串。
string:表示要匹配的字符串。
count:可选参数,表示模式匹配后替换的最大次数,默认值为0,表示替换所有的匹配值。
flags:可选参数,表示标志位,用于控制匹配方式,如是否区分字母大小写。
import re
str="Sunlan love apple lSunlan"
str=re.sub(" lSunlan","s",str)
print(str)
参考资料:
正则表达式 – 简介 | 菜鸟教程
正则表达式在线测试 | 菜鸟工具
相关文章:
文本操作基础知识:正则表达式
目录 摘要: 一、语法 二、匹配模式pattern 1、普通字符[ ] 2、限定字符 3、定位字符 4、运算字符( ) 三、修饰符flags 四、各语言的正则使用 1、Python的re 参考资料: 摘要: 常用匹配:[A-C]、[^A-C]、\w、\d、\n、\r、…...
【Scrapy】Scrapy教程6——提取数据
前一小节我们拿到了页面的数据,那页面中那么多内容,我们想要其中的部分内容,该如何获取呢?这就需要对我们下载到的数据进行解析,提取出来想要的数据,这节就讲讲如何提取数据。 引入 我们编辑保存下来的shouye.html文件看下,发现这是什么鬼,全是如下图的代码。 没错…...
PHP 网络编程介绍
PHP 学习资料 PHP 学习资料 PHP 学习资料 在当今数字化时代,网络编程是开发各类应用必不可少的技能。PHP 作为一门广泛应用于 Web 开发的编程语言,同样具备强大的网络编程能力。接下来,我们将深入探讨 PHP 中网络连接的建立、Socket 编程、…...
【C语言】C语言 食堂自动化管理系统(源码+数据文件)【独一无二】
👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 【C语言】C语言 食堂自动化管理系统(源…...
mybatis存储过程返回list
在MyBatis中,要想通过调用存储过程返回一个List集合,你需要在Mapper接口中定义一个方法,并使用Param注解来传递存储过程的参数。同时,你需要在Mapper XML文件中配置相应的<select>标签,并指定statementType"…...
【vue】nodejs版本管理利器:nvm
nvm(Node Version Manager)即 Node 版本管理器,是一个用于在系统中轻松安装、管理和切换不同版本 Node.js 的工具。 在实际开发中,不同的项目可能基于不同版本的 Node.js 构建。比如一个旧项目依赖于 Node.js 12.x 版本的特定功能…...
负载测试工具有哪些?
Apache JMeter Apache JMeter 是一款开源的性能测试工具,主要用于对 Web 应用程序进行功能、负载和压力测试。JMeter 支持多种协议和技术,包括 HTTP, HTTPS, FTP 和 WebSocket 等。通过模拟大量并发用户访问来评估应用程序的表现1。 jmeter -n -t testp…...
路由基础 | 路由引入实验 | 不同路由引入方式存在的问题
注:本文为 “路由基础 | 路由表 | 路由引入” 相关文章合辑。 未整理去重。 路由基本概念 1—— 路由表信息、路由进表以及转发流程、最长掩码匹配原则 静下心来敲木鱼已于 2023-11-26 14:06:22 修改 什么是路由 路由就是指导报文转发的路径信息,可以…...
网络安全不分家 网络安全不涉及什么
何为网络安全 信息安全是指系统的硬件、软件及其信息受到保护,并持续正常运行和服务。信息安全的实质是保护信息系统和信息资源免受各种威胁、干扰和破坏,即保证信息的安全性。 网络安全是指利用网络技术、管理和控制等措施,保证网络系统和…...
智能编程助手功能革新与价值重塑之:GitHub Copilot
引言: GitHub Copilot 的最新更新为开发者带来了显著变化,其中 Agent Mode 功能尤为引人注目。该模式能够自动识别并修复代码错误、自动生成终端命令,并具备多级任务推理能力,这使得开发者在开发复杂功能时,可大幅减少…...
wordpress企业官网建站的常用功能
WordPress 是一个功能强大的内容管理系统(CMS),广泛用于企业官网的建设。以下是企业官网建站中常用的 WordPress 功能: 1. 页面管理 自定义页面模板:企业官网通常需要多种页面布局,如首页、关于我们、产品展示、联系我们等。Wor…...
讯方·智汇云校华为官方授权培训机构
1.官方授权 讯方智汇云校是华为领先级授权培训机构(华为授权培训合作伙伴(HALP)体系,分为认证、优选、领先三个等级,领先级是HALP最高级),代表着华为对培训合作伙伴在专业能力、师资队伍、合作…...
C语言中的文件
文章目录 文件1. 流1.1 文件缓冲1.2 标准流1.3 文本文件和二进制文件 2. 打开/关闭文件2.1 fopen2.2 fclose 3. 读写文件3.1 fgetc & fputc3.2 fgets & futs3.3 fscanf & fprintf3.4 fread & fwrite 4. 文件定位5. 错误处理5.1 errno 文件 1. 流 在 C 语言中…...
利用分治策略优化快速排序
1. 基本思想 分治快速排序(Quick Sort)是一种基于分治法的排序算法,采用递归的方式将一个数组分割成小的子数组,并通过交换元素来使得每个子数组元素按照特定顺序排列,最终将整个数组排序。 快速排序的基本步骤&#…...
前端工程化的具体实现细节
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...
数据分析--数据清洗
一、数据清洗的重要性:数据质量决定分析成败 1.1 真实案例警示 电商平台事故:2019年某电商大促期间,因价格数据未清洗导致错误标价,产生3000万元损失医疗数据分析:未清洗的异常血压值(如300mmHgÿ…...
✨1.HTML、CSS 和 JavaScript 是什么?
✨✨ HTML、CSS 和 JavaScript 是构建网页的三大核心技术,它们相互协作,让网页呈现出丰富的内容、精美的样式和交互功能。以下为你详细介绍: 🦋1. HTML(超文本标记语言) 定义:HTML 是一种用于描…...
QT--常用对话框
文章目录 前言一、颜色对话框颜色对话框代码解析 二、文本对话框文本对话框代码解析 三、输入对话框1.整型输入对话框2.浮点数输入对话框3.条目对话框 四、提示对话框1.提问对话框2.消息对话框3.警告对话框4.关键对话框 五、进度对话框六、向导对话框总结 前言 今天介绍几种标…...
基于 Ollama 工具的 LLM 大语言模型如何部署,以 DeepSeek 14B 本地部署为例
简简单单 Online zuozuo :本心、输入输出、结果 文章目录 基于 Ollama 工具的 LLM 大语言模型如何部署,以 DeepSeek 14B 本地部署为例前言下载 Ollama实际部署所需的硬件要求设置 LLM 使用 GPU ,发挥 100% GPU 性能Ollama 大模型管理命令大模型的实际运行资源消耗基于 Ollam…...
图的最小生成树算法: Prim算法和Kruskal算法(C++)
上一节我们学习了最短路径算法, 这一节来学习最小生成树. 最小生成树(Minimum Spanning Tree, MST)算法是图论中的一种重要算法, 主要用于在加权无向图中找到一棵生成树, 使得这棵树包含图中的所有顶点, 并且所有边的权重之和最小. 这样的树被称为最小生成树. 最小生成树广泛应…...
保姆级教程:在uni-app中集成FFmpeg 7.1播放RTSP流(Android原生插件实战)
在uni-app中集成FFmpeg 7.1实现RTSP流播放的完整指南 跨平台开发中处理实时视频流一直是技术难点,尤其是RTSP协议的视频流播放。本文将手把手带你完成从FFmpeg编译到uni-app插件集成的全流程,解决Android平台下RTSP播放的痛点问题。 1. 环境准备与FFmp…...
别再只会按Auto了!频谱仪RBW/VBW参数设置实战指南(以罗德与施瓦茨FSV为例)
频谱仪RBW/VBW参数设置实战指南:突破Auto模式依赖症 刚接触频谱分析仪时,那个绿色的Auto按钮简直是救命稻草——一键解决所有参数设置烦恼。但当你第一次尝试测量一个微弱信号时,突然发现Auto模式给出的结果完全不可靠;或者当你在…...
破解工业数据孤岛:DB-GPT与OPC UA的智能融合方案
破解工业数据孤岛:DB-GPT与OPC UA的智能融合方案 【免费下载链接】DB-GPT open-source agentic AI data assistant for the next generation of AI Data products. 项目地址: https://gitcode.com/GitHub_Trending/db/DB-GPT 在工业4.0时代,数据…...
NLI-DistilRoBERTa应用案例:多语言文本分析助手搭建指南
NLI-DistilRoBERTa应用案例:多语言文本分析助手搭建指南 1. 项目概述与核心能力 自然语言推理(Natural Language Inference, NLI)是自然语言处理中的一项基础任务,用于判断两个句子之间的逻辑关系。基于DistilRoBERTa的NLI模型通过轻量化的设计&#x…...
手把手教你:用Wireshark抓包搞定‘哑巴’设备的IP地址(附三种情况实战)
工业设备IP定位实战:Wireshark抓包全流程解析 车间里那台新到的PLC控制器静静躺在工作台上,除了一个闪烁的绿色网口指示灯,没有任何显示界面。老张盯着它叹了口气——这已经是本周第三次遇到"哑巴"设备了。在工业物联网和智能硬件普…...
Pixel Epic智识终端参数详解:‘逻辑发散概率’对研报创新性影响分析
Pixel Epic智识终端参数详解:逻辑发散概率对研报创新性影响分析 1. 产品概述与核心价值 Pixel Epic智识终端是一款革命性的研究报告辅助工具,它将枯燥的科研过程转化为一场充满探索乐趣的像素RPG冒险。基于AgentCPM-Report大模型构建,这款工…...
IEEE论文排版避坑:LaTeX作者栏的‘数字上标’与‘星号脚注’到底怎么选?一篇讲清
IEEE论文排版进阶指南:作者标注格式的选择逻辑与实战技巧 在学术写作的精密工程中,IEEE论文排版常被视为LaTeX用户的"终极测试场"。特别是作者信息标注这个看似简单的环节——数字上标还是星号脚注?这个问题困扰过无数研究者。我曾…...
保姆级教程:在STM32F407上为FreeRTOS V9.0配置SystemView V3.52(附完整源码包)
STM32F407与FreeRTOS深度集成SystemView全流程实战指南 如果你正在使用STM32F407开发板运行FreeRTOS,却苦于无法直观观察任务调度和中断行为,那么SystemView将成为你的"系统透视镜"。本文将手把手带你完成从零配置到可视化分析的全过程&#…...
批量处理JSON文件的Python脚本
在日常的数据处理工作中,我们经常会遇到需要批量读取和处理同类文件的情况。今天我们将探讨如何利用Python中的pathlib库来遍历一个目录中的所有JSON文件,并将其内容读取到Pandas DataFrame中进行进一步分析。 背景 假设我们有一个目录,里面包含多个JSON格式的文件,每个文…...
通过受管控的控制平面加速商品陈列优化
作者:来自 Elastic Alexander Marquardt, Honza Krl 及 Taylor Roy 搜索行为的变化不应该需要一个工程工单。了解受管控的控制平面如何让业务团队在数小时内更新搜索策略,而无需部署,也无需承担风险。 Elasticsearch 新手?参加我…...
