python正则表达式替换所有内容并同时保留找到的内容
除了一些专业的工具,例如ue,大部分编程语言的函数包都挺让人迷惑的,例如Java,js。
因为的确有许多功能是很常用的,但是他们又不提供,非得要程序员自己去实现,或者是利用三方的包.
到底是什么理由了? 为了保证核心的精干,避免可能出现的bug,这是最基础程序的定位。不同spring这样的框架越来越全,越来越庞大,学习和维护越发困难。这是我的猜测。
例如我们会有这样的要求:找到文本中特定内容,并且把找到的部分修饰一下(例如增加一些字符或者添加一些符号)。
直接上代码,读者就能够明白:
import re;
strs="1949前人间正道是沧桑。1949年新中国成立。2019年新中国成立70周年,2023年中国成立74周年,2049年成立100周年。我们期待那一天的到来";
p=re.compile("[0-9]{3,}"); #查找三位数以上的情况
replaceFun=lambda x:'【'+x+'】';
def replaceAndReserve(str,fun):
foundedList=p.findall("_$_"+str+"_$_");
splitList=p.split(str);
if len(splitList)>0:
newStr="";
foundQty=len(foundedList);
i=0;
while i<foundQty:
newStr+=fun(foundedList[i])+splitList[i+1];
i+=1;
newStr=splitList[0]+newStr;
newStr=newStr.replace("_$_","");
return newStr;
else:
return "";
print(replaceAndReserve(strs,replaceFun));
结果:【1949】前人间正道是沧桑。【1949】年新中国成立。【2019】年新中国成立70周年,【2023】年中国成立74周年,【2049】年成立【100】周年。我们期待那一天的到来
注:以上函数是假设源串不会包含"_$_"子串,这是一种取巧的写法。
实现这个并不难,因为上面这个就是基于findall和split基础上,既然已经可以那样,顺便再写一个replace应该不是难事。
python正则表达式替换所有内容并同时保留找到的内容的更多相关文章
- python 正则表达式替换字符串中匹配的字符
import re street = '21 Ramkrishna Road' print(re.sub('Road$', 'Rd.', street)) 将结尾的Road用Rd.替换
- python正则表达式替换或去除指定字符
代码: import re regEx = "[\n""|]" # 去除字符串中的换行符.中文冒号.|,需要去除什么字符就在里面写什么字符 str= re.su ...
- 在notepad++里面使用正则表达式替换掉所有行逗号前面内容
需求:在notepad++里面使用正则表达式替换掉所有行逗号前面内容,一文本内容如下(只贴一小部分,实际上N多): 级别,層級程序,程式插件,外掛程式鼠标,滑鼠打印,列印打开,開啟博客,部落格联系,聯 ...
- 用正则表达式替换内容 php
以前做一个项目,就是有一个问答的页面,比如说在回答或者提问的内容中插入表情.写到内容里的是表情图片的名字(而且是不带后缀的,比如:f_002.png)表情包放在项目里,我需要在取除内容的时候将里面的表 ...
- 使用Dreamweaver正则表达式替换href中的内容
在Dreamweaver中使用正则表达式替换href中的内容,就像下面这些href中的内容复杂多样的情况下,href="/html/u.html",href="/tuho ...
- Python正则表达式如何进行字符串替换实例
Python正则表达式如何进行字符串替换实例 Python正则表达式在使用中会经常应用到字符串替换的代码.有很多人都不知道如何解决这个问题,下面的代码就告诉你其实这个问题无比的简单,希望你有所收获. ...
- python正则表达式re模块详细介绍--转载
本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以是Unicode字符,这点不用担心,python会处理地和Ascii字符一样漂亮. 正则表达式使用反斜杆( ...
- python 正则表达式 (重点) re模块
京东的注册页面,打开页面我们就看到这些要求输入个人信息的提示.假如我们随意的在手机号码这一栏输入一个11111111111,它会提示我们格式有误.这个功能是怎么实现的呢?假如现在你用python写一段 ...
- 比较详细Python正则表达式操作指南(re使用)
比较详细Python正则表达式操作指南(re使用) Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式.Python 1.5之前版本则是通过 regex 模块提供 E ...
- Python 正则表达式-OK
Python正则表达式入门 一. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分. 正则表达式是用于处理字符串的强大工具, 拥有自己独特的语法以及一个独立的处理引擎, 效率上 ...
随机推荐
- [Gin] gin-jwt 中间件的请求流程与使用思路
gin-jwt 中间件是对 jwt-go 的封装以适应 gin 框架.gin-jwt 对不同的请求流程有不同的 handler: 登录请求流程 是用 LoginHandler. 需要 jwt 令牌的后 ...
- WPF 基础 2D 图形学知识 判断点是否在线段上
在知道一个使用两个点表示的线段,和另一个点,求另一个点是否在线段上 本文算法属于通用的算法,可以在 WPF 和 UWP 和 Xamarin 等上运行,基本上所有的 .NET 平台都能执行 如下图,如果 ...
- Go-Zero技能提升:深度探究goctl的妙用,轻松应对微服务开发挑战!(三)
前言 有位同学在群里说:"Go-Zero官方文档太简洁了,对小白有点不友好.好奇你们是怎么学习的?项目是怎么封装的?有什么提高开发效率的技巧吗?". 来来来,这期内容给你安排上,先 ...
- JavaScript算法---基础排序类
<html> <script> //正序排序,把大的放到最后,arr[j]>arr[j+1] let fz=(arr)=>{ for(let len=arr.len ...
- width:100%与width:auto区别
小知识 width:100%与width:auto区别 width:100% : 子元素的 content 撑满父元素的content,如果子元素还有 padding.border等属性,或者是在父元 ...
- 我的书《Unity3D动作游戏开发实战》出版了
首先感谢帮助和参与前期检阅的朋友们.本书是我经验积累的提炼,书中既有干货分享也有对基础内容的详解补充. 同时由于是第一次撰写书籍,许多地方仍有不足还请读者朋友们见谅. 在京东或当当等都可以购买到本书: ...
- pageoffice在线编辑word文件并禁止选中
一.整篇文档禁止选中 wordDoc.setDisableWindowSelection(true); //禁止word的选择文字功能 二.根据条件判断是否禁止选中 比如:选中内容超过一定字数,取消选 ...
- 智能制造 | AIRIOT智慧工厂管理解决方案
工厂生产运转中,设备数量多,环境复杂.企业往往需要承担很高的维修.保养.备件和人力成本.传统的工厂改革遇到了诸多前所未有的挑战: 1.管理系统较多,数据隔离,系统集成困难重重: 2.大量老旧设 ...
- Ceph 架构以及部署
目录 Ceph架构 存储类型 为什么用到Ceph? 1. NFS 2. MooseFS MooseFS瓶颈 3. GlusterFS 4. Ceph Ceph的组件 Ceph部署 前期准备 1.1 修 ...
- 29.4K star! 仅需几行代码快速构建机器学习 Web 应用项目,无需前端技能!
大家好,我是狂师! 今天给大家推荐一款开源的Python库:Gradio! Gradio是一个开源的Python库,用于创建机器学习和数据科学的交互式应用和演示. 项目地址: https://gith ...