【问题标题】:Searching a code segment from a file从文件中搜索代码段
【发布时间】:2014-02-10 01:55:43
【问题描述】:

我正在尝试搜索某些代码存储库中可用的错误修复。我所拥有的只是个人修复的代码。我需要提出一个可执行文件,它可以解析整个文件,并且可以根据修复预期的整个文件中修复代码的比较来确定修复是否可用。我需要一些建议算法来实现这个本质上是有条件的模式匹配练习。

【问题讨论】:

  • patch --dry-run 如果修复已应用或与文件不匹配,则会出错。
  • 补丁 --dry-run 是否足够智能,即使行很少移动,也可以识别整个文件中的块。我的意思是说有人可能触摸了文件并在上方或下方插入了一些行,这使得行号无关
  • 如果它使用上下文差异,它会找到它。
  • 谢谢 stark 让我看看它是否符合我的需要并留下反馈

标签: algorithm pattern-matching code-search-engine code-search


【解决方案1】:

鉴于修复,我假设您可以将其描述为增量:程序员在文件中的 that 位置/文本中进行了 this 更改。 (如果你没有,你可以从应用到前后文件的类似 diff 的工具中获取它(请参阅我的简历以获得智能)。

然后你想寻找那个文本。你可以用一个正则表达式来做这件事,至少在大小变化很大的情况下。

您可能必须向用户显示匹配项以进行审查,因为搜索/匹配过程是启发式的。

【讨论】:

  • 感谢 Baxter 因为补丁在 git 中可用,所以我有关于 diff 的信息。我试图实现这一自动化,因为用户可能不参与。我希望通过分隔符来打破它们并对文件进行递归搜索,但需要一个算法来实现。
  • “将正则表达式应用于表示文件内容的字符串”有什么问题?
猜你喜欢
  • 2012-04-24
  • 2013-11-05
  • 2018-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-12
  • 1970-01-01
  • 2015-02-03
相关资源
最近更新 更多