批量替换文本的思路

发布于 2022-09-06 00:02:44 字数 387 浏览 15 评论 0

问题描述

简要

  1. 需要遍历大量文件
  2. 将原来文本中的strA1,strA2,strA3, 替换成strB1,strB2,strB3
  3. strAs => strBs 是一一对应的, 保存再 json 文件中

基本思路,使用两层循环

伪代码如下

forEach (strAs 生成 RegexObj)
    forEach (文件列表 => fileStr)
        fileStr.replace(RegexObj, 'g')

个人感想

使用两层循环, 一次次遍历上千个文件???
我还没开始做就否定这种方案, 故上来抛砖引玉

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

颜漓半夏 2022-09-13 00:02:44

如果是linux环境可以考虑下用sed命令做。

南风起 2022-09-13 00:02:44

思路可以的,几千个文件算很少的啦。

也可以考虑用sed

sed 's/strA/strB/g' [filein的文件名] > [fileout保存的文件名]

比如test.json文件中

sed 's/strA/strB/g' test.json > test.json
﹎☆浅夏丿初晴 2022-09-13 00:02:44

如果用 Python 也很简单,只需遍历一次:

from functools import reduce
handle_list = [(strA1, strB1), (strA2, strB2), (strA3, strB3)]
for index, content in enumerate(content_list):
    # 使用 reduce 和 replace 替换所有需要替换的字符对
    content_list[index] = reduce(lambda x, y: x.replace(*y), [content] + handle_list)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文