gpt4 book ai didi

数字之间数字的正则表达式

转载 作者:行者123 更新时间:2023-12-04 11:51:24 25 4
gpt4 key购买 nike

我需要一个正则表达式,它需要一个最小值和一个最大值来确定有效输入,而且我希望最大值和最小值是动态的。

我一直在尝试使用此链接完成此操作
https://stackoverflow.com/a/13473595/1866676

但无法让它工作。所以有人可以让我知道如何做到这一点。

------ 关于 Wiktor Stribiżew 请求的更新-------

假设我想制作一个 html5 输入框,我希望它只接收 100 到 1999 之间的数字

我会像这样的正则表达式是什么样的?
正则表达式本身应该与应该使用它的代码有关,因为我将在 android、iOS 和网页上使用它

最佳答案

这是这种正则表达式的工作原理

ones: ^[0-9]$  // just set the numbers -- matches 0 to 9
tens: ^[1-3]?[0-9]$ //set max tens and max ones -- matches 0 to 39
tens where max does not end in 9 ^[1-2]?[0-9]$|^[3][0-4]$ // 0 to 34
only tens: ^[1][5-9]$|^[2-3][0-9]$|^[4][0-5]$ // 15 to 45

在这里,让我们选择一个任意数字 1234 到 2345
^[1][2][3][4-9]$|
^[1][2][4-9][0-9]$|
^[1][3-9][0-9][0-9]$|
^[2][0-2][0-9][0-9]$|
^[2][3][0-3][0-9]$|
^[2][3][4][0-5]$

https://regex101.com/r/pP8rQ7/4

基本上中间系列的结尾总是需要是一个可以达到 9 的直线范围,除非我们正在处理个位,如果不能,你必须在每次我们有一个可以的值时将它向上构建到中间t 从 0 开始,然后一旦我们达到一个不能以 9 结束的值,就提前中断并将其设置为下一个条件。

请注意模式,因为每个地方都凝固了。还要记住,在处理从低到高的地方时,可选运算符 ?应该使用。

它有点复杂,但几乎不可能通过一点思考来设计自定义范围。

如果你更具体,我们可以制作一个确切的例子,但通常是这样完成的: beginning-range|middle-range|end-range在某些情况下,您应该只需要开始或结束范围,例如如果最小值或最大值不以 9 结尾。意味着它后面的范围是可选的。 (例如,在第一种情况下,它让我们同时拥有单数和双数。

所以对于 100 - 1999 其实很简单 因为你有很多 9 和 0
/^[1-9][0-9][0-9]$|^[1][0-9][0-9][0-9]$/

https://regex101.com/r/pP8rQ7/1

注意:单个值不需要范围 [n] 我只是为了可读性添加了它们。

更新:将近 3 年后,发现有一个范围生成器。我不知道它有多可靠,但乍一看还不错: http://gamon.webfactional.com/regexnumericrangegenerator/

关于数字之间数字的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37700372/

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