我正在尝试在SQL Server 2008 R2 Management Studio中执行查找和替换操作,并采用了组捕获功能,以便可以反向引用替换中的组。我从this知道SSMS使用the Visual Studio 2005 regex engine。这是我所拥有的一个例子:
SELECT First FROM Table1
SELECT Second FROM Table2
SELECT Third FROM Table3
这是我的“查找”表达式:
SELECT (.+) FROM (.+)
这是我的“替换”表达式:
\1 \2
但是,运行替换操作不会导致返回任何捕获的组,即每行仅是“”(<-只是两个反向引用之间的空格)。
我究竟做错了什么?
最佳答案
SQL Server Management Studio引擎使用{
和}
来“标记”表达式:
SELECT {.+} FROM {.+}
将其与
\1 \2
替换表达式结合使用时,您将获得预期的结果:First Table1
Second Table2
Third Table3
VS Regex reference page解释了详细信息。
关于regex - 使用正则表达式,组捕获和反向引用查找和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31296632/