【发布时间】:2021-12-27 09:59:54
【问题描述】:
假设我有一个带有随机文本的变量
DECLARE @sNumberFormat NVARCHAR(200) = 'rand{text.here,{999}also-Random9He8re'
我想用[0-9] 替换{999} 中的每个9。所以在这个例子中我想得到
'rand{text.here,[0-9][0-9][0-9]also-Random9He8re'
问题是我永远不知道有多少个9 会放在括号中,所以可以有{99} {9999} ..然后继续。我还需要验证是否有任何无效字符(不是9),那么什么都不应该被替换。
我尝试了REPLACE 和PATINDEX 函数的一些组合,但我无法实现。
【问题讨论】:
-
SQL Server 不支持正则表达式,它的模式匹配能力充其量是初级的。
标签: sql-server string-matching