gpt4 book ai didi

algorithm - 识别文件中的搜索和替换操作

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:19:14 25 4
gpt4 key购买 nike

假设您有一个源文件,其中有人使用简单的文本替换将一个符号重命名为另一个符号。该文件的 diff 输出通常很长,并且不是发生了什么的非常有用的标识符。您想要知道的是,更改是否只是 s/a/b/g,如果是,ab 是什么 - 您我们不会提前告诉这个工具,它必须自己解决。 (为了便于讨论,您可以在这里假设 'a' 和 'b' 不包含换行符。)

  • 您会使用什么算法来发现搜索和替换? (简单)
  • 如果发生了多个文本替换,您将如何让它发挥作用? (相当容易)
  • 在不比较任何一个原始文件的情况下,您将如何编写它来处理 diff 输出? (比较难)
  • 例如,你能在多大程度上做到这一点?识别正则表达式匹配而不是搜索/替换? (困难)
  • 在包含此类更改以及其他更改的文件中,您能否想出一种启发式方法来生成 sed 表达式和大大缩短的差异? (困难)

对于喜欢设计算法的人来说,这是一个问题,但它大致基于我想使用的实际工具,所以如果您碰巧知道一个不错的命令行工具可以执行上述任何操作,奖励积分。 ;)

最佳答案

我现在想到的两个选项:

  • 运行 /s/b/a/g 并比较文件(尽管这显然不会在您的正则表达式中发现错误)
  • 制作你自己的 diff 工具,它的工作方式与其他工具相同,但接受某些更改而不将其显示为差异(即,如果一行不同,并且该行仅在 a 上不同一侧和另一侧 b,不要标记线)

关于algorithm - 识别文件中的搜索和替换操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4826845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com