Regex 在Visual Studio 2013中查找换行符 我有一个C++源文件,包含很多函数。

Regex 在Visual Studio 2013中查找换行符 我有一个C++源文件,包含很多函数。,regex,visual-studio-2013,newline,Regex,Visual Studio 2013,Newline,我想快速找到每个函数的开头 如何为)换行符{newline形成表达式 换行符可以是以下任一符号: \n \r \n\r \r\n 假设在整个文件中使用了相同的符号,因此我需要为每个选项使用一个表达式,而不是为所有组合的选项使用一个表达式 我假设可以使用正则表达式,但我不确定如何使用 谢谢如果您只是想在VS中使用正则表达式搜索来查找每个函数的开头,那么这应该适用于您: \)\r?\n\s*{\r?\n 尽管这假定{始终在下一行,在换行之前没有空格 在涉及空白的情况下,这将不那么严格,但仍然希望{

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

如何为
)换行符{newline
形成表达式

换行符可以是以下任一符号:

  • \n
  • \r
  • \n\r
  • \r\n
  • 假设在整个文件中使用了相同的符号,因此我需要为每个选项使用一个表达式,而不是为所有组合的选项使用一个表达式

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


    谢谢

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

    \)\r?\n\s*{\r?\n
    
    尽管这假定{始终在下一行,在换行之前没有空格

    在涉及空白的情况下,这将不那么严格,但仍然希望{在下一行,后面是换行符:

    \)\s*\r?\n\s*{\s*\r?\n
    
    这将基本上只查找两个括号,即使它们在同一行上:

    \)\s*\r?\n?\s*{
    
    如果您预计两个括号之间可能会有几条换行符:

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

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

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

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

    您说过您需要单独的选项,因此可以将其转换为:

  • \)\r\n{\r\n

  • \)\r{\r

  • \)\n{\n

  • \)\n\r{\n\r
    (这一连串的换行非常令人惊讶)


  • 你是在问VS2013中的文本编辑器吗?@NirMH:是的,尽管我认为它在任何其他文本编辑器中都是类似的,如记事本++等。因为我不是100%确定,我必须指定VS2013。你是否为此尝试了VSAssist addin(类似于C#resharper)@NirMH:你的意思是,为了快速找到每个函数的开头?是的/VSAssist有一个功能可以转到每个函数的开头。另外,你可以折叠所有函数体以轻松查看定义的所有函数-使用CTRL+M+OAwesome!我要求每个选项使用一个表达式的唯一原因是med构造这样的表达式会更容易。但是一般表达式工作得很好(并且使我不再需要查找使用了哪一个
    换行符
    )。谢谢。顺便说一句,我在VS2013上的“查找”组合框看起来与您答案中的不同(我相信是VS2012中的)@barakmanos很高兴它能工作,谢谢你让我知道…哈,不,这是VS2013的屏幕截图…可能是不同的主题、版本或操作系统(你可能在Win8上,那是Win7x64)