gpt4 book ai didi

regex - 范围 0-200.0000(包括 0 和 200)的正则表达式

转载 作者:行者123 更新时间:2023-12-02 04:25:44 26 4
gpt4 key购买 nike

我正在尝试编写接受 0200.0000 之间数字的正则表达式。

我现在设法写了这个:

^([0-9]|[1-8][0-9]|9[0-9]|1[0-9]{2}|200){1}(\.[0-9]{1,4})?$

但问题是我的表达式接受像 200.0001 和更大的数字。

如果前面的数字是 200,知道如何限制小数点后的数字吗?谢谢

最佳答案

问题是 (\.[0-9]{1,4})?0 之后匹配一个可选的点序列和一个到四个 任何 数字, 1 , 11 , 111 200 , 也。您需要使用 (\.[0-9]{1,4})? 200 之前的数字和 (\.0{1,4})?对于 200 .

^(?:(?:[1-9]?[0-9]|1[0-9]{2})(?:\.[0-9]{1,4})?|200(?:\.0{1,4})?)$

参见 this demo

我建议使用非捕获组而不是捕获组(即将 (...) 转换为 (?:...) ),因为您以后不会使用这些部分。

我看到你的模式是generated online自动,所以我决定稍微“缩小”它。

图案细节

  • ^ - 字符串开始
  • (?: - 匹配两个备选方案的非捕获组的开始:
    • (?:[1-9]?[0-9]|1[0-9]{2})(?:\.[0-9]{1,4})? :
      • (?:[1-9]?[0-9]|1[0-9]{2}) - 来自 1 的可选数字至 9然后是任何一位数字,或 1后跟任意两位数
      • (?:\.[0-9]{1,4})? - 一个可选的点序列,后跟一到四个 any 数字
    • | - 或者
    • 200(?:\.0{1,4})? - 200后跟出现 1 次或 0 次 .后跟 1 到 4 个零
    • )$ - 组和字符串的结尾。

关于regex - 范围 0-200.0000(包括 0 和 200)的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54574328/

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