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

作者:

文章目录
  • import re text = ‘”自定义产品”保护范围是否清晰的认定案行政二审判决书,以及”测试数据”的使用情况’ # 替换所有成对的英文双引号为中文双引号 result = re.sub(r'”(.*?)”‘, r’“1”’, text) print(result) 输出: “自定义产品”保护范围是否清晰的认定案行政二审判决书,以及“测试数据”的使用情况 说明: "(.*?)" 匹配非贪婪的英文双引号对(避免跨引号匹配)。 r'“1”' 将匹配的内容替换为 “ + 原内容 + ”。
  • 如果文本中有嵌套引号或不匹配的引号(如 "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)。 遍历所有引号,偶数索引替换为 “,奇数索引替换为 ”。
  • 如果文本结构简单,可以直接用 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正则表达式匹配和替换的操作指南 Python正则表达式字符串的匹配、替换、分割、查找方式 python正则表达式查找和替换内容的实例详解 python 正则表达式参数替换实例详解
  • 目录
    • 方法 1:正则表达式替换(推荐)
    • 方法 2:逐个替换(适用于复杂情况)
    • 方法 3:直接替换(适用于简单情况)
    • 总结

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

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

    import re
    
    text = '"自定义产品"保护范围是否清晰的认定案行政二审判决书,以及"测试数据"的使用情况'
    
    # 替换所有成对的英文双引号为中文双引号
    result = re.sub(r'"(.*?)"', r'“1”', text)
    print(result)
    

    输出:

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

    说明:

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

    如果文本中有嵌套引号或不匹配的引号(如 "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)。
    • 遍历所有引号,偶数索引替换为 “,奇数索引替换为 ”。

    如果文本结构简单,可以直接用 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正则表达式匹配和替换的操作指南
    • Python正则表达式字符串的匹配、替换、分割、查找方式
    • python正则表达式查找和替换内容的实例详解
    • python 正则表达式参数替换实例详解

    站内搜索