首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配指定的整数

问匹配指定的整数
EN

Stack Overflow用户
提问于 2015-08-03 17:13:15
回答 2查看 33关注 0票数 0

我有以下正则表达式:

代码语言:javascript
复制
1|2|3|4|5|6

它是一个SQL部件,我只想匹配这6个ids。问题是这个正则表达式还匹配11、12、13、14、15、16、23等整数。

我如何构造正则表达式来只匹配这6个特定的整数?

EN

回答 2

Stack Overflow用户

发布于 2015-08-03 17:25:32

为了使用“更短”的查询,您可以使用带有REGEXP的字符类的交替

代码语言:javascript
复制
SELECT * FROM table WHERE id REGEXP '^([1-6]|23)$'

字符类[1-6]匹配从1到6的数字,|用于列出其他备选字符。使用(...)进行分组使锚点^ (字符串的开头)和$ (字符串的结尾)应用于所有可能的备选方案。

如果您的is是单独传递的,并且regex是动态创建的,那么只需使用alternation:

代码语言:javascript
复制
^(23|6|5|4|3|2|1)$

但是,如果您只有一小部分‘d,则最好使用OR语法列出备选方案,因为非正则表达式解决方案消耗的资源较少。

票数 0
EN

Stack Overflow用户

发布于 2015-08-03 17:29:19

您还可以使用:

代码语言:javascript
复制
SELECT * FROM table WHERE id IN (1,2,3,4,5,6);

你为什么明确想要使用REGEXP呢? 10次中有9次有比REGEXP更好的解决方案

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31783555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档