You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用re模块批量替换多模式(含括号且不区分大小写)问题排查

解决带特殊正则字符的多模式大小写敏感替换问题

你的问题核心在于:当替换模式包含括号这类正则元字符时,re.sub会将它们当作正则语法解析(比如括号用于分组),而非匹配文本中的普通括号字符,导致无法正确匹配目标内容。

修复方案

使用re.escape()函数对每个替换模式进行转义,它会自动将所有正则特殊字符(如()[]{}*.+?^$\\|-)转换为普通字符,确保模式能精准匹配文本里的原始内容。

修改后的代码

import re

def replace_multiple_patterns(input_string: str, replace_pattern: list, replace_with: str, ignore_case: bool = True) -> str:
    for rp in replace_pattern:
        # 转义正则特殊字符,确保匹配原始文本
        escaped_pattern = re.escape(rp)
        input_string = re.sub(escaped_pattern, replace_with, input_string, flags=re.IGNORECASE if ignore_case else 0)
    return input_string

测试验证

运行你的测试案例:

# 测试案例1
replace_patterns = [" test", "my"]
input_string = "My sample Test string"
print(replace_multiple_patterns(input_string, replace_patterns, ""))
# 输出: sample string

# 测试案例2
replace_patterns = [" (test)", "my"]
input_string = "My sample (Test) string"
print(replace_multiple_patterns(input_string, replace_patterns, ""))
# 输出: sample string

两个案例均能得到你期望的结果。

内容的提问来源于stack exchange,提问作者Ken

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 23:53:11