Python文本处理——re.sub 和 str.replace()的区别

Python正则表达式实战:字符串清洗的工程化方法 正则表达式是处理非结构化字符串数据的核心技术,其本质是基于模式匹配的文本解析原理,通过定义字符规则实现精准提取与智能替换。相比简单的split()或replace(),正则具备语义感知能力,能识别数字结构、嵌套边界和多变格式,在金融、电商、日志、IoT等场景中承担着将‘毛坯数据’转化为标准字段的关键任务。本文聚焦re.findall()、re.search()、re.sub()和re.compile()四大高频函数,结合价格解析、日志拆解、电话号码归一化等真实案例,系统阐述如何构建鲁棒、可复用、可监控的字符 阅读详情

1.str.replace()

str.replace(old, new[, max])
用新字符串 new 替换旧字符串 old,可以设置替换次数 max

old – 将被替换的子字符串。
new – 新字符串,用于替换old子字符串。
max – 可选字符串, 替换不超过 max 次

text1 = '           Info has been found (+/- 100 pages, and 4.5 MB of .pdf files) Now i have to wait untill our team leader has processed it and learns html.         '
text1

在这里插入图片描述

# str.replace(old, new[, max])

text1.replace('  ', '')

在这里插入图片描述 需要注意的是,replace 不会改变原 string 的内容!

2.re.sub

re.sub(pattern, repl, string, count=0, flags=0)
使用正则表达式来进行子串的替换

pattern:表示正则表达式中的模式字符串(被替换的部分);

repl:替换后的部分(既可以是字符串,也可以是函数);

string:要被处理的,要被替换的字符串;

count:匹配的次数, 默认是全部替换

在这里插入图片描述

# re.sub(pattern, repl, string, count=0, flags=0)
re.sub('\W', ' ', text1)    # 将任何不是单词的字符替换为空格
replace与exclude操作:原理、区别与优化实践 字符串处理和数据过滤是编程中的基础操作,其中replace(替换)和exclude(排除)是两种核心处理方式。从原理上看,replace通过模式匹配修改内容,常用于数据清洗和模板渲染;而exclude基于条件判断过滤元素,多用于日志处理和数据集预处理。在工程实践中,replace操作需注意大文本处理和正则优化,exclude则要考虑尽早过滤和并行处理。特别是在数据脱敏和日志过滤等场景中,合理运用这两种操作能显著提升系统性能和安全性。通过预编译规则、分布式处理等技术,可以优化replace与exclude在大 阅读详情

相关推荐

Python字符串搜索替换的工程实践:从in到replace的场景化选型指南

字符串搜索与替换是文本处理的基础能力,其核心在于理解不同方法的底层机制与适用边界。`in`操作符基于优化算法实现零开销存在判断;`.find()`提供安全的位置索引,避免异常开销;`.index()`则用于强契约场景,确保数据完整性;`.count()`专注高效统计;而`.replace()`作为批量编辑工具,虽简单高效但不可逆且不支持上下文匹配。这些方法在日志清洗、模板渲染、医疗文本高亮及合同条款提取等真实工程场景中,需按数据特征分层部署。掌握它们的性能差异、Unicode兼容性及内存行为,是构建稳定、高

weixin_34414650的博客 369

Python-str.replace()总结

python-str.replace() 方法的总结 字符串方法 str.replace(),Python 官方文档描述如下: 返回字符串的副本,其中出现的所有子字符串 old 都将被替换为 new。如果给出了可选参数 count,则只替换前 count 次出现。 replace(self, old, new, count=-1, /) old,旧字符或字符串 new,新字符或字符串 count,最大替换数,从起始位置开始计数,默认替换所有(是默认值参数,默认为-1,当然,-99也可以) 注意:rep

weixin_53307519的博客 1万+

Python字符串搜索与替换方法选型指南:in/find/index/count/replace深度解析

字符串搜索与替换是文本处理的基础能力,其核心在于理解不同操作的语义差异与适用边界。`in`用于高效存在性判断,`.find()`返回索引并容忍缺失,`.index()`则以异常契约强制校验必要性,`.count()`专注非重叠频次统计,`.replace()`实现不可变替换。这些方法底层依托CPython优化算法,性能表现各异,且在Unicode处理(如德语`straße`、土耳其语`İ`)和大小写归一化(`.casefold()`优于`.lower()`)上存在关键差异。掌握其设计哲学与参数陷阱,可显著提

weixin_34195142的博客 352

python re.sub() 正则替换(多字符串替换)

一、参数解析 re.sub( pattern, # 正则中的模式字符串 repl, # 替换的字符串,也可为一个函数 string, # 要被查找替换的原始字符串 count = 0 # 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配 ) 二、案例 import re import pypinyin str_ = "这是我的老婆--云韵" # 案例1: 将云韵改为美杜莎 result = re.sub(r'云韵', "美杜莎", str_

small__roc的博客 1万+

Python正则反向引用:模式中\1与替换中\\1的核心区别与实战应用

正则表达式是文本处理的强大工具,其核心机制之一是通过捕获分组提取匹配内容。反向引用则允许在模式中引用已捕获的文本,或在替换结果中复用这些内容,这对于处理重复、对称结构的数据至关重要。在Python的re模块中,模式字符串内的反向引用使用`\1`语法,而替换字符串中则需使用`\\1`或更安全的`\g<1>`语法,这涉及Python字符串转义与正则引擎解析的两层逻辑。理解这一区别能显著提升文本处理、数据清洗和日志分析等场景下的代码效率与可读性。本文通过实战案例,深入解析`\1`与`\\1`的应用差异,帮助开发者

weixin_30384217的博客 506

【硬件】通俗易懂的讲解晶体管(三极管和MOS管)的工作原理

晶体管是一个简单的元器件,可用于构建许多有趣的项目。在本文中,我将用通俗易懂的语言给您讲解晶体管的工作原理,以便您可以在电路设计中更好的使用静态管。一旦你学习这些基础知识,对以后的设计和使用来说,将会变得非常容易。我们将重点介绍两种最常见的晶体管:双极型晶体管(三极管)和MOSFET。晶体管的工作原理其实是类似于电子开关。它可以打开和关闭电路。一个简单的思考方法是将晶体管视为无源的继电器。晶体管类似于继电器,从某种意义上说,您可以使用它来打开和关闭某些东西。但晶体管也可以部分导通,一般在放大电路中使用,这部

1万+

python re.sub替换不全的原因分析

re.sub函数的定义 def sub(pattern, repl, string, count=0, flags=0): """Return the string obtained by replacing the leftmost non-overlapping occurrences of the pattern in string by the replacement repl. repl can be either a string or a callable;

枪枪枪的博客 1302

5060TI显卡深度学习环境搭建:CUDA12.8与CUDNN9.8.0的完美搭配

本文详细介绍了在Win10系统下为5060TI显卡搭建深度学习环境的最佳实践,重点配置CUDA12.8与CUDNN9.8.0的完美组合。通过优化OpenCV编译选项和YOLOv5环境设置,显著提升模型训练和推理效率,帮助开发者充分发挥5060TI显卡的性能潜力。

weixin_29065791的博客 487

python中的str.replace()函数

python中字符串的元素替换函数,一般来说使用方法为 str.replace(old, new[, max]) 例如 s = '123:456:789' s.replace(':', '-') 结果就是 '123-456-789' 但是当查看字符串s的时候发现s并没有发生改变,说明str.replace()函数并不对原有的字符串进行改变。 ...

qq_41264482的博客 2万+

深入浅出DDR系列(二)--DDR工作原理

学习完了DDR的基本组成和硬件结构原理之后,从整体上了解了DDR的特性和静态图,包括原理、管脚图等。那么本章就要从动态的角度来分析时序结构,包括read/write的整个过程到数据返回发生了什么,其中包括以下内容 DDR是如何完成Read、Write 等的操作 DDR的基本命令 DDR的时序参数 DDR的性能分析 1. DRAM基本组成 对于DRAM,其主要由行和列组成,每一个bit中都是由类似右下图的类晶体管的结构组成,对于sdram的数据,可以通过控制column和row就可以访问sd

奇小葩 3万+

【移动APP测试】Firebase Test Lab (FTL) 实战指南:从零搭建自动化测试流水线

本文详细介绍了Firebase Test Lab (FTL) 在移动APP测试中的实战应用,从零搭建自动化测试流水线。通过真实设备、虚拟设备和iOS设备的全面覆盖,FTL帮助开发者高效进行兼容性测试、性能监控和崩溃分析,显著提升应用质量。文章还提供了设备选择策略、成本控制技巧和CI/CD集成的最佳实践,助力团队优化测试流程。

weixin_29281915的博客 253

Python正则表达式中sub和replace的区别

1、sub 和 replace 区别。

xm_law的博客 922

OSCP-Challenge 2 - Relia

使用andrea:PasswordPassword_6登录远程桌面,在c盘根目录下发现一个计划任务的ps,文件,修改执行的exe位木马,获取到milana用户的反弹shell。,发现开放了一个8000端口,但是我们外部是访问不到的,它对应的页面是/var/www/internal/,这个目录下的文件我们是可以访问的,把这个文件打个包放到本地分析下。其中数据的可以直接连接mssql,但是端口是49965,不过在数据库中没发现什么可用的信息,但是可以修改密码直接进后台,这个可以先放放。

羽的博客 7763

Python学习——str.replace()方法与re.sub()方法对比

这两种方法都可以对字符串字符串进行替换,但是各有不同,下面就通过不同的例子进行说明: 1、str.replace()方法 str.replace()方法可以将一个指定的字符格式替换成另一种字符: s = '123:456:789' s.replace(':', '-') 1 2 得到结果: '123-456-789' 1 2、re.sub()方法 上述例子同样可以用re.sub()方法进...

pan15125284的博客 424

点云焊缝提取

本文介绍了一个基于PCL库的点云处理流程,包含三个核心模块:MLS平滑处理通过多项式拟合修正点云位置;差异提取通过双向匹配定位源/目标点云的非重叠区域;统计过滤剔除离群噪声点。该流程采用"平滑-筛选-净化"的通用思路,将复杂算法封装为可配置接口,实现了工业级点云预处理。文章重点分析了各模块的原理、PCL接口调用及参数设计逻辑,同时指出参数调优、算法扩展等深入探索方向,展现了PCL在点云处理中的模块化优势与实用价值。

weixin_45196569的博客 250

Uni-App 使用极光推送完整指南

Uni-App集成极光推送的完整指南:从注册极光账号到代码实现。包含前期准备(获取AppKey、注册厂商账号)、Uni-App配置(插件导入、初始化代码)、高级功能(角标设置、Java后台接口)及常见问题排查。详细说明了推送监听、registrationID获取、消息接收处理等核心功能实现步骤,并提供两种推送接口示例(按平台推送和统一推送)。适合需要在Uni-App项目中实现推送功能的开发者参考。

cyj0919的博客 425

python 中 strip(),replace(),re.sub的区别

✍转载自:https://blog.csdn.net/lwgkzl/article/details/85544871 1.strip(): str.strip([chars]);去除字符串前面和后面的所有设置的字符串,默认为空格。 chars – 移除字符串头尾指定的字符序列。 st = " hello " st = st.strip() print(st + "end") ''' 输出: helloend ''' 》如果设置了字符序列的话,那么它会删除,字符串前后出现的所有序列中有的字符

ytraister的博客 466

【地图模块算法】二维全局地图的开源方案及对比--gmapping、hector、karto、cartographer

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、gmapping算法建图【基于Raoo-Blackwellized粒子滤波(RBPF)算法】1.gmapping理论(1)gmapping的工作原理(2)gmapping的算法流程(3)gmapping论文理论2.gmappingROS工程框架解析(1)gmapping的功能包架构(2)gmapping订阅和发布的话题(3)gmapping算法建图参数(4)gmapping源码

qq_35635374的博客 3436

python re sub 替换多个_Python随笔23:Python基础编程练习题11~12

注:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性。编程Python基础练习题11任意给定一个字符串,去掉里面的数字部分,并输出结果,比如给定一个字符串"de2de2de",输出"dedede"。解答:替换字符串有两个常用的方法,第一种就是字符串方法str.replace(),另外一种就是强大的正则表达式re.sub()函数了。而前者的功能虽然方便,但具有较大的局限性,后者就灵活...

weixin_33682804的博客 156

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

python 正则 replace函数_Python 替换字符串的正则匹配 re.sub 正确用法

re.sub 介绍re是Regular Expression的所写,表示正则表达式,sub是substitute的所写,表示替换的意思;re.sub是个正则表达式方面的函数,用来实现通过正则表达式,实现比普通字符串的replace更加强大的替换功能;re.sub 语法:re.sub(pattern, repl, string, count=0, flags=0)前三个必选参数:pattern, r...

weixin_39910043的博客 6494

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

python--如何删除字符串中的引号(单、双引号)

python删除字符串中的引号(单、双引号)的几种方法

Cassiel_f的博客 2万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【Python基础-4】字符串及正则表达式

掌握字符串的常用操作 熟练格式化字符串的使用 掌握字符串的编码和解码 掌握数据的验证 掌握数据的处理 掌握正则表达式的使用

qq_45695920的博客 1409

正则替换字符串replace()方法:从基础到高阶的实战技巧全解析

本文全面解析JavaScript中replace()方法的使用技巧,从基础字符串替换到高级正则表达式应用,涵盖捕获组、函数替换等实战场景。通过多个代码示例展示如何高效处理字符串替换任务,特别适合前端开发者提升文本处理能力。

ama7449的博客 378

Python字符串查找:find()方法原理、应用与性能优化全解析

字符串查找是编程中的基础操作,其核心原理是通过特定算法在文本中定位目标子串。在Python中,find()方法提供了高效的字符串查找功能,它基于优化的两路搜索算法,在保证性能的同时返回子串的索引位置。这一技术价值在于平衡了简单性与功能性,既不像in操作符只返回布尔值那样信息有限,也不像正则表达式那样复杂。在实际应用场景中,find()常用于日志解析、数据清洗和文本处理等任务,例如从URL中提取参数或分析错误日志。通过掌握find()与index()、rfind()等方法的区别,开发者可以编写出更健壮的代码。

weixin_30642869的博客 285

Python字符串函数深度解析:从基础操作到性能优化实战

字符串处理是编程语言中的基础核心概念,它涉及对文本数据的创建、修改、分析和转换。其原理在于通过内置函数对不可变的字符序列进行操作,高效处理用户输入、数据清洗和格式化等任务。掌握字符串操作的技术价值在于能显著提升代码的健壮性和执行效率,是编写高质量软件的关键。在应用场景上,无论是网络爬虫、日志分析、配置文件解析还是报告生成,都离不开字符串的精确处理。本文聚焦于Python中常用字符串函数的深度解析,特别针对 `str.replace()` 的性能陷阱和 `join()` 的高效实践进行了详细探讨,帮助开发者从

weixin_34221332的博客 362

Python字符串操作全解析:从基础到高级应用

字符串处理是编程中的基础技能,Python提供了丰富的字符串操作方法。作为不可变序列类型,Python字符串在内存管理和线程安全方面具有优势。从基础的拼接、切片操作,到高级的正则表达式处理,字符串在数据处理、日志解析等场景中发挥关键作用。Python 3.6引入的f-string语法极大提升了字符串格式化的效率,而Unicode支持则使多语言文本处理变得简单。在性能优化方面,使用str.join()替代循环拼接、合理利用字符串缓存等技巧能显著提升程序效率。掌握这些字符串处理技术,对开发高效、可靠的Pytho

weixin_33895695的博客 358
上一篇: 杂谈——机器学习(使用Python进行文本处理)实践感悟:快速迭代
下一篇: scikit-learn文本处理时出现:fit_transform() missing 1 required positional argument: 'X'
Robin_Pi
博客等级 码龄9年 2万+粉丝 632原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值