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 正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式

正则表达式与扩展正则表达式区别

PHP 正则表达式总结

正则表达式

正则表达式

正则表达式“或“的使用