gpt4 book ai didi

java - 用于验证多个数字范围的正则表达式

转载 作者:行者123 更新时间:2023-11-30 03:14:23 26 4
gpt4 key购买 nike

我正在尝试验证允许属于多个范围的数字。例如:

数字 x 在 150-200 或 700-750 之间时有效

基本上我想将这些限制存储在数据库中,所以我认为将它们存储为正则表达式将是处理这个问题的好方法。

我对正则表达式不熟悉,因此无法想出一个用于上述验证的表达式。

最佳答案

解决方案:

1[5-9][0-9]|200|7[0-4][0-9]|750

说明:

由于您有一个非常明确定义的范围,因此正则表达式相当简单。

它可以分为两部分:

  1. 150 199 200
  2. 700 749 750

因此,将正则表达式放在一起将读取为

((150 199 200) (700 749 750))

您的第一个数字是 150,因此我们必须将第一个数字匹配为“1”,后跟第二个数字的范围,可以是 5 到 9(您不希望任何小于 150 的数字,因此 4还有更少的),后面跟着第三个数字的范围,可以是 0 到 9 之间的任何数字。这捕获从 150 到 199 的所有数字。

第一个范围中的最后一个数字是 200,所以我们可以直接查找它。它与该范围中的其他可能性有很大不同,因此更容易专门寻找它,而不是尝试考虑将其包含在正则表达式范围中的复杂方法。

第二个范围遵循相同的模式,但数字不同。同样,我们通过使用正则表达式范围来查找大多数数字,并查找最后一个数字 750,特别是因为它太不同了 - 中间有一个数字 5。如果我们在正则表达式中间范围中包含 5,则它将达到 759,这超出了范围。

最后,OR 两个部分和正则表达式都已准备就绪。

根据您的输入进行调整。您可能需要用 ^ 和 $ 将其括起来作为行的开头和结尾,或者如果您的输入有其他文本围绕有问题的数字,请扩展您的正则表达式以适本地处理它。

关于java - 用于验证多个数字范围的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32977432/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com