SQL Server正则表达式-查找字符的单个实例

SQL Server正则表达式-查找字符的单个实例,sql,sql-server,regex,sql-server-2014,sql-like,Sql,Sql Server,Regex,Sql Server 2014,Sql Like,给定以下测试数据,我想返回包含单个符号和字符的所有行,该符号和字符之前或之后没有其他符号和字符 CREATE TABLE #RegexTest (Vals VARCHAR(10)); INSERT INTO #RegexTest (Vals) VALUES ('&'), /* match */ ('&&'), ('1 & 2'), /* match */ ('1 && 2'), ('1 && 2&') /*

给定以下测试数据,我想返回包含单个符号和字符的所有行,该符号和字符之前或之后没有其他符号和字符

CREATE TABLE #RegexTest (Vals VARCHAR(10));
INSERT INTO #RegexTest (Vals) VALUES
('&'),       /* match */
('&&'),
('1 & 2'),   /* match */
('1 && 2'),
('1 && 2&')  /* match */
我已经尝试了以下使用负向前看和负向后看的方法:

SELECT *
FROM #RegexTest
WHERE Vals LIKE '%(?<!&)&(?!&)%'
但这不会返回任何行。我该怎么做呢?

您可以使用模式%[^&]&[^&]%来查找前后字符不相同的-。短于3个字符的字符串必须填充才能使用此技巧:

其中CONCAT“|”,vals“|”类似“%[^&]&[^&]%” 您可以使用模式%[^&]&[^&]%查找前后字符不相同的&。短于3个字符的字符串必须填充才能使用此技巧:

其中CONCAT“|”,vals“|”类似“%[^&]&[^&]%” 您的LIKE表达式将只查找包含字符串的字段VAL的行?因为SQL server不支持正则表达式。您的同类表达式将只查找包含字符串的字段VAL的行,该字符串包含文字字符串?因为SQL server不支持正则表达式。