【发布时间】:2023-03-18 04:00:01
【问题描述】:
我一直在尝试匹配,使用 LIKE 或 PATINDEX 格式的字符串
[subdomain.domain.com].[dbo].[MyDatabase]
出现在 SQL 字符串中
而字符串 [subdomain.domain.com] 将始终以这种格式出现
[dbo] 和/或 [MyDatabase] 可以带或不带方括号
我已经尝试了以下
WHERE SQLString LIKE '%[[]subdomain.domain.com[]].[[]{0,1}dbo[]]{0,1}.[[]{0,1}MyDatabase[]] {0,1}%'
或
WHERE SQLString LIKE '%\[subdomain.domain.com\].\[{0,1}dbo\]{0,1}.\[{0,1}MyDatabase\]{0,1}% '转义'\'
我可以创建多个 WHERE 或 WHERE 语句,涵盖每种可能性,但想了解在这种情况下为什么正则表达式不起作用。
【问题讨论】:
-
您使用的是 SQL Server 吗?如果有,是什么版本?
-
@JakeMc 这是 SQL Server 2012 SP4 v 11.07493.4
-
@HABO 不确定我理解。我了解正则表达式/模式匹配结构可以在 LIKE 语句中使用。不确定我是否暗示等效?
-
{0,1}之类的元素似乎没有为likepatterns 记录。您在like模式中包含该语法的文档来源是什么?
标签: tsql escaping sql-like brackets square