sql - MsSqlServer 正则表达式
问题描述
我有以下正则表达式:[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}%'
解决方案
我猜你想要这些字符串之一作为前缀。也就是说,你真的打算:
(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]%'
严格来说,最后一个条件不是必需的,因为它与第一个条件匹配。
推荐阅读
- r - 如何从 R 中的数字中选择第 n 个数字?
- sql - 查找不同年份的缺失部分数据
- python - 将 csv 文件上传到 cassandra(语法错误)
- git - 如何在已经存在的本地 git 存储库上设置 Visual Studio 2019?
- sql - 如何计算同一项目的多行?
- javascript - Google 登录 API - 附加范围(Gmail 发送方式)
- php - WooCommerce 电子邮件模板中的 ACF 自定义字段
- database - 如何使用键从另一个表中插入数据?
- angular - ngClass 最佳实践中的角度参考 id
- java - 双击 jtable 的错误行为