是否有一个Windows实用程序可以让我对我剪切的文本进行多个程序化查找/替换。粘贴到它?

时间:2010-06-15 21:13:17

标签: visual-studio regex text-manipulation

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

newDataRow["to_dir"] = comboBox108.Text;

对此:

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

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

是否有一个Windows实用程序可以让我剪切并粘贴代码组,然后运行某种reg-ex表达式逐个转换单个行?我也愿意使用某种VS 2008加载项,它对选择的代码执行相同的reg-ex操作。

提前致谢。

6 个答案:

答案 0 :(得分:2)

虽然不是很棒的体验,但您可以使用VS2008内置的搜索功能。替换为此。

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

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

\ 1和\ 2标识符是找到的第一个和第二个组(用{}包围)。点击菜单搜索字词旁边的箭头,选择botom选项以寻求帮助。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

并替换为

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

应该做的伎俩:o)

答案 3 :(得分:1)

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

答案 4 :(得分:0)

Windows Grep非常棒,应该完全符合您的要求,而且更多:

http://www.wingrep.com/

答案 5 :(得分:0)

我在这个问题上选择的工具可能是Notepad ++(在Finds中搜索/查找 - 确实也可以替换)。支持RegExps。