找到&在visual studio中替换不替换所有出现的内容

时间:2013-12-10 10:48:19

标签: visual-studio visual-studio-2012 visual-studio-2013

我使用ctrl + shift + f来触发“查找和替换”,转到“替换文件”选项卡。

我在整个解决方案(包含大约11000个文件)中进行正则表达式搜索:

#layout(\d+)-top

代替
#layout$1 .layout-top

操作改变了很多文件,但是当我在操作后打开某个css文件时,我仍然可以读取如下行:

#layout5-top,
#layout6-top
{
    width: 960px;
    height: 104px;
    margin: 0 auto;
}

为什么?

如果我做同样的搜索&用该文件替换打开,该操作将影响该文件。

我可以找到许多没有改变的文件。

在搜索和替换运行时出现的进度指示器中,我看到每个文件都被处理,而不仅仅是打开文件。

1 个答案:

答案 0 :(得分:16)

我遇到了完全相同的问题。它似乎只在使用正则表达式时发生。我知道文件正在匹配,因为如果我换成'在文件中查找',文件中会匹配正确的行。这对我来说似乎是个错误。可能,微软并不相信我们不会用正则表达式自己投篮。 ;)

我能解决的唯一方法是选择选项:

  

全部替换将打开包含更改的所有文件以进行编辑

enter image description here

如果您没有收到此警告对话框,则可能已将其禁用,请参阅here

然后输入 ALT f l 以保存所有文件并关闭所有文件。 当大约有200个文件有替换时(搜索的完整文件集大约为10000),这似乎有效。我不确定Visual Studio一次可以打开多少个文件,所以我想在某些时候它将不再工作或者将丢失替换,在这种情况下,您可能需要多次运行它。