9

我正在尝试在 SQL Server 2008 R2 Management Studio 中执行查找和替换操作并使用组捕获,以便我可以反向引用替换中的组。我从中了解到 SSMS 使用Visual Studio 2005 正则表达式引擎。这是我所拥有的一个例子:

SELECT First FROM Table1
SELECT Second FROM Table2
SELECT Third FROM Table3

这是我的“查找”表达式:

SELECT (.+) FROM (.+)

这是我的“替换”表达式:

\1 \2

但是,运行替换操作不会返回任何捕获的组,即每一行只是“”(<---只是两个反向引用之间的空格)。

我究竟做错了什么?

4

2 回答 2

9

SQL Server Management Studio 引擎使用{and}来“标记”表达式:

SELECT {.+} FROM {.+}

当您将其与\1 \2替换表达式结合使用时,您会得到预期的结果:

First Table1
Second Table2
Third Table3

VS Regex 参考页面解释了细节。

于 2015-07-08T15:23:37.620 回答
9

对于 SSMS 17 及更高版本{ ... }\1将无法正常工作。使用( ... )and$1代替。

于 2018-07-13T15:15:07.623 回答