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不支持正则表达式。