【问题标题】:Find newline in Visual Studio 2013在 Visual Studio 2013 中查找换行符
【发布时间】:2014-07-08 10:02:30
【问题描述】:

我有一个包含许多函数的 C++ 源文件。

我想快速找到每个函数的开头。

如何为)newline{newline 形成表达式?

newline 符号可以是以下任一符号:

  1. \n
  2. \r
  3. \n\r
  4. \r\n

大概是在整个文件中都使用了相同的符号,因此我需要为每个选项使用一个表达式,而不是所有选项组合的单个表达式。

我假设可以使用正则表达式,但我不确定如何使用。

谢谢

【问题讨论】:

  • 你问的是VS2013中的文本编辑器吗?
  • @NirMH:是的,虽然我认为它在任何其他文本编辑器中都会类似,例如 notepad++ 等。由于我不是 100% 确定这一点,我不得不指定 VS2013。
  • 您是否为此目的尝试过 VSAssist 插件(类似于 C# resharper)
  • @NirMH:你的意思是,为了快速找到每个函数的开头?
  • yes/ VSAssist 具有转到每个函数开头的功能。另外,您可以折叠所有函数体以轻松查看所有定义的函数 - 使用 CTRL+M+O

标签: regex visual-studio-2013 newline


【解决方案1】:

Barak,在我们查看单个选项之前,对于所有选项,这将完成:

\)[\r\n]+{[\r\n]+

[\r\n] 是一个允许\r\n 的字符类。它用+ 量化,这意味着我们正在寻找这些字符中的一个或多个。

你说你想要单独的选项,所以这可以变成:

  1. \)\r\n{\r\n

  2. \)\r{\r

  3. \)\n{\n

  4. \)\n\r{\n\r(这一系列的换行很让人吃惊)

【讨论】:

  • 太棒了!我要求为每个选项使用一个表达式的唯一原因是我认为构造这样的表达式会更容易。但是一般表达式工作得很好(并且让我从找出正在使用的newline 的任务中解脱出来)。谢谢。
  • 顺便说一句,我在 VS2013 上的 Find 组合框看起来与您的答案中的不同(我认为这是 VS2012 中的组合框)。跨度>
  • @barakmanos 很高兴它有效,谢谢你让我知道......哈,不,这是 VS2013 的截图......也许是不同的主题、版本或操作系统(你可能在 Win8 , 那是 Win7x64)
【解决方案2】:

如果您只是想在 VS 中使用正则表达式搜索来查找每个函数的开头,那么这应该适合您:

\)\r?\n\s*{\r?\n

虽然假设 { 总是在下一行,换行前没有空格。

这在涉及空白的地方会不那么严格,但仍然希望 { 位于下一行并且后面是换行符:

\)\s*\r?\n\s*{\s*\r?\n

这基本上只是寻找两个括号,即使它们在同一行:

\)\s*\r?\n?\s*{

如果您预计两个括号之间可能会有多个换行符:

\)\s*(\r?\n\s*)*{

最后一个示例应该找到任何可能类似于方法开头的内容。但不确定您希望搜索的严格程度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2017-06-20
    • 2016-09-15
    • 1970-01-01
    • 2014-11-28
    • 2014-07-10
    相关资源
    最近更新 更多