regex - 使用正则表达式,组捕获和反向引用查找和替换

标签 regex replace sql-server-2008-r2 ssms capturing-group

我正在尝试在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/

相关文章:

regex - stringr 包中的 Perl 正则表达式

visual-studio - 正则表达式:查找/替换之前没有给定字符串的所有子字符串?

PHP str_replace 未定义

sql-server-2008-r2 - SSRS 报告不会在浏览器中加载

tsql - SQL Server在GROUP BY期间丢弃SPACE

javascript - 在空格上拆分短语,首字母缩略词除外

sql-server - 如何在SQL中提取方括号之间的文本

python - SQLAlchemy:如何对列值执行 regexp_replace

c# - 通过缓存提高SQL Server的性能是否可行?

iphone - 用于在推文中查找主题标签的正则表达式无法正常工作