Regex 查找前无空行的特定命令

Regex 查找前无空行的特定命令,regex,visual-studio-2013,Regex,Visual Studio 2013,在visual studio 2013项目中的所有“返回”之前,我需要留下一个空行: 因此,我使用查找和替换。 我知道下面的正则表达式会找到所有的空行 ^\s+$\n 我怎样才能找到前面没有空行的所有退货 例如,应在搜索结果中找到: Some Codes; return (someObject); } 不是这个: SomeCodes; return(someObject); } 谢谢 要查找前面没有空行的return,必须查找包含return(很可能前面有一些空格!)的行,然后使用负回溯

在visual studio 2013项目中的所有“返回”之前,我需要留下一个空行: 因此,我使用查找和替换。 我知道下面的正则表达式会找到所有的空行

^\s+$\n
我怎样才能找到前面没有空行的所有退货

例如,应在搜索结果中找到:

Some Codes;
return (someObject);
}
不是这个:

SomeCodes;

return(someObject);
}

谢谢

要查找前面没有空行的
return
,必须查找包含
return
(很可能前面有一些空格!)的行,然后使用负回溯检查前面的字符是否为2个硬返回。它必须是两个硬返回,因为第一个总是在那里——它是将返回放在自己一行上的一个。第二个硬回车是一个空白行所需的硬回车。因为它是一个负向后看,所以它将匹配不匹配的行

错误(应找到):
。。。代码\N
返回;

对的:
。。。代码\N
\n
返回;

如果正则表达式解析器支持负Lookbehinds,那么这应该是可行的:

(?<!\n)(?<![\t ])[\t ]*\n[\t ]*return
这将在包含空格(制表符或空格)的空行上报告错误匹配,因此您可能希望通过替换

[\t ]+$

什么都没有。

谢谢!但这仍然没有找到任何东西@玛丽亚姆:我认为你需要调查一下你的IDE是否支持负回溯。它的工作原理与我使用的代码编辑器中所宣传的一样。我使用的是Visual Studio 2013和.Net Framework 4.5。根据这一点,它应该支持消极的回顾。我不确定我遗漏了什么。@Maryam:我测试的编辑器要求换行符使用
\r
,而不是
\n
,我确信我在发布之前替换了所有换行符,但似乎我还是忘了更改一个。如果仍然失败,请尝试更简单的变体。非常感谢您的帮助。由于我在您的帮助下找到了答案,请提供[^\r?\n][\t]*\r?\n[\t]*作为单独的答案返回,因此我选择了它。
[\t ]+$