【发布时间】:2018-06-21 20:40:21
【问题描述】:
我目前正在尝试用不同但相似的测试框架替换旧的 (java) 测试框架。因此,由于大多数旧框架代码的出现在 90% 的情况下都是相同的(在相同的变量名称、参数类型等意义上),因此替换它们非常简单且相当重复。
因此,我给自己写了一些正则表达式匹配(效果很好,它们不是这个问题的重点)。
但是,我有大量不同的测试文件,而且我已经在这一点上 - 刚刚开始 - 我想要应用 6 个不同的匹配/替换对。
现在显然,作为一名计算机科学家,我很想自动化这个,而不是遍历每个文件,按 Ctrl+F,粘贴匹配的正则表达式,粘贴替换正则表达式,按下替换按钮,重复这个循环 5 次以上,并且然后移动到下一个文件。
所以,为了简单起见,这些是我的正则表达式:
//matches the existing framework
OldClass (.*?) = new OldClass("string");
//replacement regex:
NewClass $1 = new NewClass("string");
//example replacement:
OldClass foo = new OldClass("string");
//becomes:
NewClass foo = new NewClass("string");
那么,如果我想在许多不同的文件中替换其中的几个匹配/替换对 - 我可以使用任何内置的 eclipse 功能,还是有提供此功能的扩展?
请注意,我知道我可以编写一个简单的 java 程序,它只浏览我的所有源代码并根据需要应用正则表达式。
不过,我宁愿避免花费这些时间,特别是还希望有机会将它们单独应用于每个文件,这样我就可以在之后重新运行测试并确保没有任何问题 - 将 发生,因为过于复杂和特定的情况,并非所有旧框架代码都可以自动替换。不过,由于我还要删除旧的导入,这将破坏任何仍然存在的非替换代码,这些代码依赖于现在不再存在的导入。
【问题讨论】:
标签: java regex eclipse replace