首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >之间范围的正则表达式

之间范围的正则表达式
EN

Stack Overflow用户
提问于 2017-12-22 23:37:06
回答 2查看 77关注 0票数 1

我四处看看,但没有找到一个合适的正则表达式。我试图只匹配数字(8-32),并尝试了一些组合不成功,包括(Regex regex = new Regex("[8-9]|[10-29]\\d",RegexOptions.IgnoreCase | RegexOptions.Singleline);)。这只让我达到8-29然后我迷路了。

我知道,如果我只创建一个if语句,还有一个更好、更容易的方法,但我永远不会学到任何这样做的方法。:-)

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-22 23:44:45

使用正则表达式检查一个数字是否在某个范围内是个坏主意。Regex只关心字符串中的字符,而不是每个字符的值。regex引擎不知道223中实际上意味着20。对于它来说,它和任何其他2都是一样的。

您可能可以编写一个非常复杂的正则表达式来完成这个任务,但是不要。

假设您使用的是C#,只需将字符串转换为如下所示的整数

代码语言:javascript
复制
var integer = Convert.ToInt32(yourString);

然后用if语句检查它是否在范围内:

代码语言:javascript
复制
if (integer >= 8 && integer <= 32) {

}

如果您的数字是较大字符串的一部分,则可以使用regex提取出该数字,将其转换为int,并使用if进行检查。

票数 2
EN

Stack Overflow用户

发布于 2017-12-22 23:53:24

作为使用解释的regex测试的参考,我建议您使用https://regexr.com/并满足您的需要: 8-32,您将需要这样的模式

8-9\x{e76f}1-2\x{e76f}30-2

这样你就可以得到8或9或10到29或30到32之间的每一个数字。

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

https://stackoverflow.com/questions/47948503

复制
相关文章

相似问题

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