MsSqlServer 正则表达式
Posted
技术标签:
【中文标题】MsSqlServer 正则表达式【英文标题】:MsSqlServer Regular Expression 【发布时间】:2020-11-09 15:43:07 【问题描述】:我有以下正则表达式:[I,F,N,B,H,K,V,Y,E,M,P,IS,IU,PP][0-9]3,8
我试过了:
SELECT *
FROM *table*
WHERE Description LIKE '%[I,F,N,B,H,K,V,Y,E,M,P,IS,IU,PP][0-9]3,8%'
【问题讨论】:
SQL Server 不支持正则表达式。 您的正则表达式没有意义。您已经定义了具有重复项的字符类。也许你应该解释一下你想做什么。 那么,你的问题是什么? 【参考方案1】:我猜你想要这些字符串之一作为前缀。也就是说,你真的打算:
(I|F|N|B|H|K|V|Y|E|M|P|IS|IU|PP)[0-9]3,8
如果是这样,“3”很重要。但“8”不是——因为“8”匹配“3”。
考虑到这一点,您可以这样做:
where description like '%[IFNBHKVYEMP][0-9][0-9][0-9]%' or
description like '%I[SU][0-9][0-9][0-9]%' or
description like '%PP[0-9][0-9][0-9]%'
严格来说,最后一个条件是不必要的,因为它匹配第一个。
【讨论】:
以上是关于MsSqlServer 正则表达式的主要内容,如果未能解决你的问题,请参考以下文章