Python利用正则表达式将英文双引号替换为中文双引号

 更新时间:2025年10月26日 10:18:06   作者:袁袁袁袁满  
这篇文章主要为大家详细介绍了Python如何利用正则表达式将英文双引号替换为中文双引号,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

在Python中,你可以使用字符串的 replace() 方法或正则表达式来将英文双引号 " 替换为中文双引号 “”。需要注意的是,中文双引号是成对出现的,开头的双引号是 “,结尾的是 ”。

如果文本中有多个英文双引号对(例如 "A" and "B"),并且需要全部替换为中文双引号(“A” and “B”),可以使用正则表达式来匹配所有成对的英文双引号,并分别替换为中文的开引号(“)和闭引号(”)。

方法 1:正则表达式替换(推荐)

import re

text = '"自定义产品"保护范围是否清晰的认定案行政二审判决书,以及"测试数据"的使用情况'

# 替换所有成对的英文双引号为中文双引号
result = re.sub(r'"(.*?)"', r'“\1”', text)
print(result)

输出:

“自定义产品”保护范围是否清晰的认定案行政二审判决书,以及“测试数据”的使用情况

说明:

  • "(.*?)" 匹配非贪婪的英文双引号对(避免跨引号匹配)。
  • r'“\1”' 将匹配的内容替换为 “ + 原内容 + ”。

方法 2:逐个替换(适用于复杂情况)

如果文本中有嵌套引号或不匹配的引号(如 "A" B "C),可以使用更复杂的方法:

import re

text = '"A" and "B", but "C" is not "D"'# 使用正则表达式匹配所有英文双引号
quotes = re.findall(r'"', text)


if len(quotes) % 2 == 0:  # 确保引号是成对的
    result = text
    for i, quote in enumerate(quotes):
        if i % 2 == 0:
            result = result.replace('"', '“', 1)  # 替换第 1, 3, 5... 个 " 为 “
        else:
            result = result.replace('"', '”', 1)  # 替换第 2, 4, 6... 个 " 为 ”
    print(result)
else:
    print("引号不成对,无法替换!")

输出:

“A” and “B”, but “C” is not “D”

说明:

  • 先检查引号是否成对(len(quotes) % 2 == 0)。
  • 遍历所有引号,偶数索引替换为 “,奇数索引替换为 ”。

方法 3:直接替换(适用于简单情况)

如果文本结构简单,可以直接用 replace() 交替替换:

text = '"A" and "B"'
text = text.replace('"', '“', 1)  # 第1个 " → “
text = text.replace('"', '”', 1)  # 第2个 " → ”
text = text.replace('"', '“', 1)  # 第3个 " → “
text = text.replace('"', '”', 1)  # 第4个 " → ”
print(text)

输出:

“A” and “B”

缺点:

适用于已知引号数量的情况,不够灵活。

总结

方法适用场景优点缺点
正则表达式 "(.*?)"通用情况(推荐)简洁高效无法处理嵌套引号
逐个替换复杂情况(如不匹配引号)可处理异常情况代码较长
直接替换简单情况直观灵活性差

到此这篇关于Python利用正则表达式将英文双引号替换为中文双引号的文章就介绍到这了,更多相关Python双引号替换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python 如何求矩阵的逆

    Python 如何求矩阵的逆

    这篇文章主要介绍了Python 如何求矩阵的逆案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Python使用Keras OCR实现从图像中删除文本

    Python使用Keras OCR实现从图像中删除文本

    这篇文章主要为大家介绍了如何在Python中利用Keras OCR实现快速地从图像中删除文本,从而作为图像分类器的预处理步骤,需要的可以参考一下
    2022-03-03
  • python exe文件解包方法总结

    python exe文件解包方法总结

    这篇文章总结了如何从Python EXE文件中提取和反编译Python脚本(.pyc文件)的过程,包括使用pyinstxtractor.py或archive_viewer.py进行解包,感兴趣的小伙伴跟着小编一起来看看吧
    2025-03-03
  • Python处理日期和时间的方法总结

    Python处理日期和时间的方法总结

    这篇文章主要介绍了Python时间和日期的处理方法总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • Python中Loguru模块的具体使用

    Python中Loguru模块的具体使用

    loguru 是一个 Python 简易且强大的第三方日志记录库,该库旨在通过添加一系列有用的功能来解决标准记录器的注意事项,从而减少 Python 日志记录的痛苦,感兴趣的可以了解一下
    2025-10-10
  • python通过字典dict判断指定键值是否存在的方法

    python通过字典dict判断指定键值是否存在的方法

    这篇文章主要介绍了python通过字典dict判断指定键值是否存在的方法,实例分析了Python中使用has_key及in判断指定键值是否存在的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • 详解matplotlib绘图样式(style)初探

    详解matplotlib绘图样式(style)初探

    这篇文章主要介绍了详解matplotlib绘图样式(style)初探,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Python的Asyncore异步Socket模块及实现端口转发的例子

    Python的Asyncore异步Socket模块及实现端口转发的例子

    asyncore模块是封装过的处理socket事件的模块,采用异步的处理方式,这里我们讲来讲解Python的Asyncore异步Socket模块及实现端口转发的例子,需要的朋友可以参考下
    2016-06-06
  • Windows系统下使用flup搭建Nginx和Python环境的方法

    Windows系统下使用flup搭建Nginx和Python环境的方法

    这篇文章主要介绍了Windows系统下使用flup搭建Nginx和Python环境的方法,文中使用到了flup这个Python的FastCGI工具,需要的朋友可以参考下
    2015-12-12
  • 使用PyTorch实现手写数字识别功能

    使用PyTorch实现手写数字识别功能

    在人工智能的世界里,计算机视觉是最具魅力的领域之一,通过PyTorch这一强大的深度学习框架,我们将在经典的MNIST数据集上,见证一个神经网络从零开始学会识别数字的全过程,本文给大家介绍了如何使用PyTorch实现手写数字识别,需要的朋友可以参考下
    2025-03-03

最新评论