Visual Studio 挂起搜索正则表达式 ^.*$

Visual Studio hangs searching for regex ^.*$

(澄清一下,我说的是 Ctrl-Shift-F 搜索。当前文档。)

我想搜索不包含特定字符的行,例如“(”,所以我想我需要包括 ^ 和 $ 指示符才能获取整行。但这只会使 GUI 崩溃。是有前进的道路吗?

没有(的行应该这样处理:

^[^\(]*$

但这会挂起,更简单的 "^.*$"

也许还有另一种方法可以找到这些行?

编辑:提议的 "duplicate" 问题是关于 C# RegEx class,完全不同于 Visual Studio 2010 交互式正则表达式。

如果要匹配行,请使用 ^[^\r\n(]*$,其中 \r\n 被排除在 [^(] 之外 – Wiktor Stribiżew 6 月 27 日在 19:36

这条评论确实是答案。显然旧的 Visual Studio 搜索可以跨越多行,因此 ^.*$ 意味着从行的开头开始,前进任意数量的字符 直到行尾文档,然后停在一行的末尾。这些字符可以包含任意数量的换行符。

VS 显然没有有效地执行此查询并无休止地挂起。

W.S. 的提议明确地将换行符从搜索参数中排除,从而只强制使用一行。

Visual Studio 2012 更改为更传统的正则表达式搜索,将结果限制在单行内,因此 ^.*$ 将逐行获取文档的所有行。