我使用ctrl + shift + f来触发“查找和替换”,转到“替换文件”选项卡。
我在整个解决方案(包含大约11000个文件)中进行正则表达式搜索:
#layout(\d+)-top
用
代替#layout$1 .layout-top
操作改变了很多文件,但是当我在操作后打开某个css文件时,我仍然可以读取如下行:
#layout5-top,
#layout6-top
{
width: 960px;
height: 104px;
margin: 0 auto;
}
为什么?
如果我做同样的搜索&用该文件替换打开,该操作将影响该文件。
我可以找到许多没有改变的文件。
在搜索和替换运行时出现的进度指示器中,我看到每个文件都被处理,而不仅仅是打开文件。
答案 0 :(得分:16)
我遇到了完全相同的问题。它似乎只在使用正则表达式时发生。我知道文件正在匹配,因为如果我换成'在文件中查找',文件中会匹配正确的行。这对我来说似乎是个错误。可能,微软并不相信我们不会用正则表达式自己投篮。 ;)
我能解决的唯一方法是选择选项:
全部替换将打开包含更改的所有文件以进行编辑
如果您没有收到此警告对话框,则可能已将其禁用,请参阅here。
然后输入 ALT f l 以保存所有文件并关闭所有文件。 当大约有200个文件有替换时(搜索的完整文件集大约为10000),这似乎有效。我不确定Visual Studio一次可以打开多少个文件,所以我想在某些时候它将不再工作或者将丢失替换,在这种情况下,您可能需要多次运行它。