【问题标题】:SQL Server 2012 regex finding matchSQL Server 2012 正则表达式查找匹配
【发布时间】:2016-05-13 13:05:19
【问题描述】:

我正在使用 SQL Server Management Studio,需要在查询中查找和替换一些非常大的数据库数据。

我需要删除的格式是:

VALUES (XXX, 

举个例子:

VALUES (25, 
VALUES (101, 
VALUES (55, 

我似乎找不到 regex 以便在 SQL 查找和替换中执行此操作。而且我不太擅长尝试制作正则表达式匹配模式....

任何帮助都会很棒!

更新

对不起,我的意思是我正在使用编辑菜单下的查找和替换:

【问题讨论】:

  • 你想用空字符串替换VALUES (XXX,
  • 你可能想把你的表结构。
  • 哎呀......也许我正在寻找的一个例子会有所帮助。请检查 OP。
  • 我已删除我的答案,因为不相关
  • 这是支持的 SSMS 正则表达式命令的链接:msdn.microsoft.com/en-AU/library/ms174214.aspx

标签: sql sql-server regex sql-server-2012


【解决方案1】:

如果没有更多关于您如何使用此正则表达式的详细信息,很难确定这是否会有所帮助,但匹配任何这些行的正则表达式将是:

VALUES \([0-9]+,

'VALUES (' 位应该只匹配它作为一个字符串(左括号前的反斜杠是这样你的正则表达式引擎知道它是字符串的一部分,而不是关于搜索的说明的一部分)。[0- 9] 位表示 0-9 中的任何数字都是有效的,+ 位表示至少需要一个数字。您可能还希望在开头有一个 ^ 表示它是一行的开头,具体取决于您的用例。请注意,这将匹配括号之后和最后一个逗号之前的任意数量的数字。

【讨论】:

  • SSMS 的正则表达式语法有限,因此 {1,3} 不起作用。 (在 SSMS 2014 中测试)
  • 啊,对...以前没有使用过 SMSS 的狡猾版本的正则表达式。更新为使用 # 代替
  • Bam.. 明白了。谢谢格雷格!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-18
  • 1970-01-01
  • 2017-08-09
  • 2012-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多