0

我继承了一些 C# 代码,其中包含大约一千行我需要修改的源代码,并将其转换为:

newDataRow["to_dir"] = comboBox108.Text;

对此:

assetAttributes.Add("to_dir", comboBox108.Text);

这些行以 40 或 50 组的形式出现在整个应用程序的各个位置。可以在 Visual Studio 2008 中手动修改每一行,但它是劳动密集型的并且容易出错。

是否有一个 Windows 实用程序可以让我将代码组剪切并粘贴到其中,然后运行某种 reg-ex 表达式来逐行转换各个行?我也愿意使用某种 VS 2008 插件,它针对选定的代码执行相同的 reg-ex 操作集。

提前致谢。

4

6 回答 6

2

虽然不是很好的体验,但您可以使用 VS2008 内置的搜索和替换来做到这一点。

请注意,它有自己的正则表达式语法。为此,请转到编辑 | 查找和替换 | 在文件中替换。然后展开“查找选项”并选择使用正则表达式。

试试这个 - 测试并修复...对于您的搜索词,使用
newDataRow\[{"[."]*"}\] = {[^;]*} 并替换为 assetAttributes.Add\("\1", \2\);

\1 和 \2 标识符是找到的第一组和第二组(用 {} 括起来)。点击菜单搜索词旁边的箭头,选择底部选项以获取帮助。

于 2010-06-15T21:20:38.457 回答
1

在 Visual Studio 中,查找和替换允许您使用正则表达式进行替换。在“查找和替换”对话框的“查找选项”下,有一个“使用”复选框,其中包含正则表达式。使用“查找内容”和“替换为”旁边的箭头来了解 Visual Studio 略有不同的语法。

于 2010-06-15T21:16:41.273 回答
1

使用正则表达式搜索和替换,您可以搜索:

newDataRow\["([a-zA-Z_]+)"\] = comboBox([0-9]+).Text;

并替换为

assetAttributes.Add("\1", comboBox\2.Text);

这应该可以解决问题:o)

于 2010-06-15T21:31:15.457 回答
1

如果您只是想要一个可以执行此操作的文本编辑器,您可能想尝试 PSPad - 查找/替换允许使用正则表达式。

于 2010-06-15T21:36:03.910 回答
0

Windows Grep 很棒,应该做你想做的事,还有更多:

http://www.wingrep.com/

于 2010-06-15T21:25:24.243 回答
0

我在这件事上选择的工具可能是 Notepad++(在 Finds 中搜索/查找 - 也可以替换)。支持正则表达式。

于 2012-08-09T10:47:59.877 回答