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

如何修改Python正则表达式实现删除指定名称列表内的函数?

调整后实现代码
import re

# 定义待删除的函数名称列表,可直接修改该列表调整删除范围
delete_func_names = ["EFGHI", "NOPQRS"]
# 将名称列表转换为正则匹配的或模式,自动转义特殊字符避免匹配异常
name_pattern = '|'.join(re.escape(name) for name in delete_func_names)
# 替换原正则中的长度匹配部分为指定名称匹配,原有边界匹配逻辑保持不变
pattern = rf"(?s)FUNCTION ({name_pattern})(.*?)\b\w*(?<!,)END\b"
regex = re.compile(pattern)

with open('functions.f', 'r') as input_file:
    with open('stripped.f', 'w') as output_file:
        result = regex.sub('', input_file.read())
        output_file.write(result)
改动说明
  • 新增可配置的待删除函数名称列表,修改列表内容即可调整需要删除的函数范围
  • 用re.escape处理每个函数名,避免名称中包含正则特殊字符时匹配出错
  • 仅替换原正则中匹配4-6位大写字母的部分为指定名称的或匹配规则,原有的「END前无逗号才匹配」的边界逻辑完全保留,和你之前的匹配规则一致
  • 针对你提供的示例输入,运行后输出完全符合预期,会保留ABCD、JKLM对应的两段函数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:54:03