Visual Studio中的多行正则expression式

有没有什么办法让Visual Studio跨多行执行正则expression式replace(让匹配交叉线的边界)? 我知道有很多我可以使用的编辑器,但是这个特性已经被Visual Studio忽略了,这似乎很奇怪。 我错过了什么吗?

正则expression式在Visual Studio 2013中已更改。 https://msdn.microsoft.com/en-us/library/2k3te2cs(v=vs.120).aspx

为了匹配两行的expression式,代码现在是:

StartOfExpression.*\r?\n.*EndOfExpression

今天在Visual Studio 2012中有效:

 fooPatternToStart.*(.*\n)+?.*barPatternToEnd 

看看(.*\n)+? 部分是跨越多行匹配的,非贪婪的。
fooPatternToStart是你的起始线上的一些正则expression式模式,而barPatternToEnd是你的模式,可以find下面的另一行,可能下面的许多行…

例子在这里find。

简单有效:)

注意: VS2012 之前 ,工作的模式是: fooPatternToStart. (. \n)+@.*barPatternToEnd fooPatternToStart. (. \n)+@.*barPatternToEnd

注意:此答案使用Visual Studio中使用的正则expression式语法,包括VS 2012.在VS 2013和更高版本中,正则expression式语法已更改。

您可以在expression式中包含\n 。 作为一个例子,这里是一个正则expression式,我用它来清理自动生成的SQL脚本,而不是存储过程(它将匹配以“Object:”开头的文本块,之后是不是“StoredProcedure”,然后将以下行匹配到一行,包含单词“GO”):

 /\*+ Object\::b:b~(StoredProcedure)(.*\n)#GO\n 

您可能需要在expression式末尾使用\ r \ n。