gpt4 book ai didi

regex - 我使用正则表达式将数字限制在 3.00 到 100.00 之间。但它允许 100.01 到 100.99 之间的数字

转载 作者:行者123 更新时间:2023-12-01 08:22:06 25 4
gpt4 key购买 nike

我需要将数字限制在 3.00 到 100.00 之间我用了下面的表达式

^([3-9]|[1-9][0-9]|100)+(\.\d{1,2})?$

上面表达式的问题是,它允许100.01到100.99,应该被限制。它也允许310到399,需要限制。

我用了另一种相同的表达方式

^([3-9]|[1-9][0-9]|100.00)+(\.\d{1,2})?$

按预期工作,但我们需要输入 100.00 来传递正则表达式而不是 100。

有什么方法可以达到我想要的效果吗?

最佳答案

当与最后的 100 交替时,对 \.\d?[1-9] 使用负前瞻,以确保小数位(如果有)具有只有 0 秒。

由于组末尾的 +,您的第一个模式还可以匹配可选小数点之前的 许多 个重复数字(如 333 和 101010),因此最好如果您只想匹配 3 到 100,请删除 +

^(?:[3-9]|[1-9][0-9]|100(?!\.\d?[1-9]))(?:\.\d{1,2})?$
^^^^^^^^^^^^^^

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

要允许前导零,请在 ^ 之后添加 0*:

^0*(?:[3-9]|[1-9][0-9]|100(?!\.\d?[1-9]))(?:\.\d{1,2})?$
^^

关于regex - 我使用正则表达式将数字限制在 3.00 到 100.00 之间。但它允许 100.01 到 100.99 之间的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53606890/

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