首页 > 编程语言 >python正则表达式替换所有内容并同时保留找到的内容

python正则表达式替换所有内容并同时保留找到的内容

时间:2023-02-24 20:02:28浏览次数:45  
标签:1949 splitList python 周年 正则表达式 内容 str 成立

除了一些专业的工具,例如ue,大部分变成语言的函数包都挺让人迷惑的。

因为的确有许多功能是很常用的,但是他们又不提供,非得要程序员自己去实现,或者是利用三方的包.

例如我们会有这样的要求:找到文本中特定内容,并且把找到的部分修饰一下(例如增加一些字符或者添加一些符号)。

直接上代码,读者就能够明白:

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应该不是难事。

 

标签:1949,splitList,python,周年,正则表达式,内容,str,成立
From: https://www.cnblogs.com/lzfhope/p/17152957.html

相关文章

  • input框输入文本内容,不显示文本,也不聚焦的问题
    在input的css样式中发现有个color: inherit;属性,调试一下把对勾去掉后发现,input框显示正常内容,所以这个就是我本次的问题原因所在,所以把这个inherit改成revert即可,记录一......
  • Mac 创建Python3虚拟环境
    Mac创建Python3虚拟环境1、安装virtualenvpip3installvirtualenv安装virtualenvwrapperpip3installvirtualenvwrapper创建所以.virtualenvs的隐藏文件夹存......
  • #Python基础 DateFrame 查看数据信息
    一:导入案例数据及X-MIND 二:实例 2.1显示摘要信息  2.2显示描述性统计信息   2.3显示前后n行  2.4显示索引、列信息  2.5显示每列的数据类......
  • python Gui编程工具详解:beeware
    各个gui开发工具对比Flexx:可以使用Flexx创建桌面应用程序和web应用程序,同时可以将程序导出到独立的HTML文档中,GitHub推荐Kivy&BeeWare:只需编写一套代码便可轻松运行于......
  • python Mqtt 的安装及使用
     简介&安装MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛.可以以极少的代码和有限的带......
  • RGB2HSV Python
    RGB2HSVPythonfromskimageimportcolorimportmatplotlib.pyplotaspltimportcv2img=cv2.imread('low-light.jpg')print(img.shape)plt.figure(num='astrona......
  • python 冰墩墩
     1.python,turtles以下为代码:importturtle#设置一个画布turtle.setup(800,600)turtle.speed(10)#画左手和手内turtle.penup()turtle.goto(177,112)turt......
  • Python学习笔记--网络通信--socket
    1.socket里面的,AF_INET和AF_UNIX有什么区别?AF_INET用于真实的两台机器进行通信。AF_UNIX用于本地自己跟自己通信。参考资料:http://www.langdebuqing.com/  2.soc......
  • python基于word模板批量生成word文件
    1、需要用到docxtpl库,用于操作word模板安装:pipinsatlldocxtpl处理之前的word模板 处理后的word 下面直接上代码揭开它的神秘面纱:第一步,读取excel中的内容imp......
  • 如何利用Python分析数据--绘图
    一、前言1)本文需要了解Python相关的基础知识。2))本文参考快速入门指南—Matplotlib3.7.0文档,实现利用Python完成日常的图表绘制。二、基础知识1)本文的......