如何将这段重复调用replace的Python文本处理代码简化得更短更整洁?
代码优化思路
- 将无变量、无先后依赖的固定字符串替换规则统一整理为映射列表,遍历执行即可,无需重复写
replace方法 - 保留原有执行顺序,特殊的正则替换、带动态变量的替换、有先后依赖的替换单独拆分,确保和原代码输出结果完全一致
- 后续新增替换规则只需往对应位置添加即可,维护更方便
优化后代码
import re # 固定字符串替换映射,顺序和原逻辑保持一致 replace_map = [ ('<div dir="ltr">', '<p>'), ('<h4 dir="ltr">', '<h4>'), ('<h3 dir="ltr">', '<h3>'), ('<div>', '<p>'), ('</div>', '</p>'), ('target="_blank" ', ''), ('&nbsp;', ''), ('rel="noopener noreferrer" ', '') ] # 1. 执行正则清理 data = re.sub(r' data-saferedirecturl="http\S+"', '', data) # 2. 批量执行固定字符串替换 for old_val, new_val in replace_map: data = data.replace(old_val, new_val) # 3. 执行特殊动态/顺序敏感替换 data = data.replace('href', f'title="{zoekwoord}, " href') data = data.replace(f'{domein}', '') data = data.replace('<p></p>', '') data = data.replace('href="https://', 'target="_blank" href="https://')
内容的提问来源于stack exchange,提问作者Sander
相关产品推荐
相关产品推荐

