首页 > 编程语言 >Python正则表达式替换(sub)中如何使用替换函数

Python正则表达式替换(sub)中如何使用替换函数

时间:2024-09-03 11:26:23浏览次数:14  
标签:中文 冒号 sub Python group0 替换 match

def sub_the_chinese_colon_of_the_question_number(_lines: str) -> str:
    """
    :param _lines:清理后的文本文件内容
    功能:查找并替换题号后的中文冒号为英文冒号。
    """

    # 定义替换函数,用于调用re.sub:
    def replacement(match) -> str:
        """
        :param match:匹配对象
        功能:保持匹配对象中比例的中文冒号,其他替换为英文冒号。
        假设:中文冒号后内容三种可能情况:1)非数字,如:企业员工应;(替换)
                                   2)数字年份,如:2001年;(替换)
                                   3)比例,如:1:1。(保持)
        """
        group0 = match.group(0)  # 整个匹配表达式
        pat_match = re.compile(r'\D|\d{4}年')  # 编译正则表达式
        if pat_match.match(match.group(1)):  # 匹配中文冒号后为非数字/数字年份
            print(f'{Fore.LIGHTGREEN_EX}已替换“{group0}”(:后为非数字/数字年份)', end='。')
            ou.print_current_line_number()  # 打印当前行号
            group0 = group0.replace(':', ':')  # 中文冒号替换为英文冒号
        else:  # 比例,保持中文冒号
            print(f'{Fore.LIGHTYELLOW_EX}未替换“{group0}”(比例中的“:”)', end='。')
            ou.print_current_line_number()  # 打印当前行号
        return group0

    pat_sub = re.compile(r'\d{1,3}:(.{5})')  # 匹配数字:(中文冒号),取5个任意文字是为了年份(2001年)
    return pat_sub.sub(replacement, _lines)

 

标签:中文,冒号,sub,Python,group0,替换,match
From: https://www.cnblogs.com/zdt168/p/18394207

相关文章

  • python 数据分析 损失数值 如何放到csv中呢 人工智能 深度神经网络,Pytorch ,tensorflo
    损失数值如何放到csv中呢 在Python中,使用`csv`模块将数据写入CSV文件是一种常见的操作。从你提供的代码片段来看,你想要将损失数值写入名为`middle_losse.csv`的文件中。但是,你提供的代码片段中存在一些需要修改的地方,以确保数据能够正确地写入CSV文件。首先,`csv.writer`对象的`wr......
  • Python中,使用`sklearn.preprocessing`模块中的`StandardScaler`或`MinMaxScaler`可以
    在Python中,使用`sklearn.preprocessing`模块中的`StandardScaler`或`MinMaxScaler`可以对数据进行标准化或归一化处理。以下是如何对一个列表(list)中的数据进行标准化的示例:第一结合numpy###使用StandardScaler进行标准化(Z-scorenormalization)`StandardScaler`将数据转换为均值......
  • 述FunsorFunsor是一个类似张量的函数和分布库。概率规划的泛函张量获取系统描述 ppl,p
    项目描述FunsorFunsor是一个类似张量的函数和分布库。看见概率规划的泛函张量获取系统描述。安装使用pip安装:Funsor支持Python3.7+。pipinstallfunsor从源安装:gitclonegit@github.com:pyro-ppl/funsor.gitcdfunsorgitcheckoutmasterpipinstall.使用funsorFunsor......
  • 基于python的物流企业资产管理系统的设计与实现---附源码89513
     摘 要本文介绍了一种基于Python的物流企业资产管理系统的设计与实现。随着物流行业的快速发展,资产的有效管理和监控变得尤为重要。本文首先分析了物流企业资产管理的需求,包括资产登记、报备、维修、采购等核心功能,并指出了现有系统的不足。在此基础上,我们提出了一个基......
  • 在Linux中使用C++调用Python程序
    为什么要用C++调Python我们训练部署CNN模型时,服务器用Pytorch测试的精度比我们部署端精度高0.5%。经过多方排查,发现是由于Pytorch预处理图片使用PIL进行图片读取和尺寸调整,但是部署端采用OpenCV进行图片读取和尺寸调整。两种实现方式实现的Resize操作差异非常大。为了快速完成项......
  • 【最新原创毕设】基于微信小程序的老年人健康医疗信息服务平台设计+24246(免费领源码)可
    摘 要老年人健康是社会关注的重点之一,随着我国人口老龄化程度的增加,老年人的健康问题逐渐凸显。为了更好地满足老年人的健康需求,提高医疗服务质量和效率,开发一个基于SpringBoot的老年人健康医疗信息服务平台是十分必要的。老年人健康医疗信息服务平台利用Java语言,通过spring......
  • 拒绝做工具小子—编写Python漏洞验证脚本_编写漏洞利用脚本
    前言我们实战经常会遇到以下几个问题:​1、遇到一个利用步骤十分繁琐的漏洞,中间错一步就无法利用​2、挖到一个通用漏洞,想要批量刷洞小赚一波,但手动去测试每个网站工作量太大这个时候编写一个poc脚本将会将会减轻我们很多工作。本文将以编写一个高效通用的poc脚本为目......
  • (免费源码)计算机毕业设计必看必学 原创定制程序 java、PHP、python、小程序、文案全套
    目 录摘要1绪论1.1研究背景1.2研究意义1.3论文结构与章节安排2 自助洗衣房管理系统系统分析2.1可行性分析2.2系统流程分析2.2.1数据增加流程2.2.2数据修改流程2.2.3数据删除流程2.3系统功能分析2.3.1功能性分析2.3.2非功能性分析......
  • 10 Python面向对象编程:类和对象以及和Java的对比
    本篇是Python系列教程第10篇,更多内容敬请访问我的Python合集这里只介绍类和对象,self、属性、方法、访问控制、类继承、方法重写在后面的文章里介绍在Python中,类和对象是面向对象编程的基础。1类的概念类是一种创建对象的蓝图或模板。它定义了一组属性(变量)和方法(函......
  • 11 Python面向对象编程:三大特性,封装、继承、多态
    本篇是Python系列教程第11篇,更多内容敬请访问我的Python合集1封装封装就是把类的公有属性改成私有属性,并且提供对外访问的方法。示例classMyClass:def__init__(self,value):self.__value=valuedefget_value(self):returnself.__......