gpt4 book ai didi

regex - 正则表达式仅允许数字、带点、& 和空格的数字

转载 作者:行者123 更新时间:2023-12-02 14:33:30 24 4
gpt4 key购买 nike

我需要一个仅允许数字、空格、精度为 2 的小数和 & 符号的正则表达式。

此正则表达式将用于检查允许使用 & 符号分隔多个数字的输入,并且中间可以有空格(可选,但最多一个)。以下是我尝试过的方法,由于我对正则表达式的理解很差,所以它们的效果很差。

^(?=.*[0-9])[ &.0-9]+$

但是效果不太好。

因为像 &&&&&&1 这样的东西会通过检查。

也尝试过类似的方法,效果也很差

^([0-9]{1,}[.]{0,1}[0-9]{0,2}[ ]{0,1}+[&]{0,1}[ ]{0,1})*?$

以下举例说明了我的预期

12 --->(通过)

12.12 --->(通过)

12 & 129.12 & 11 --->(通过)

12 & 129. & 11 ---> (不应通过)

12 & .129 --->(不应通过)

12 & 129..1(不应通过)

12 和 129.111(不应通过)

&&&1(不应通过)

......

提前非常感谢

最佳答案

为了考虑空格,您可以使用 将它们设为可选?

您可以使用匹配 2 个可选空格和一个 & 符号的重复模式:

^\d+(?:\.\d{2})?(?: ?& ?\d+(?:\.\d{2})?)*$

说明

  • ^ 字符串开头
  • \d+(?:\.\d{2})? 匹配 1 个以上数字,并可选择匹配一个点和 2 个数字
  • (?: 非捕获组
    • [ ]?&[ ]? 匹配可选空格(为清楚起见,使用 [ ])、& 和可选空格
    • d+(?:\.\d{2})? 匹配 1 个以上数字,并可选择匹配一个点和 2 个数字
  • )* 关闭非捕获组并重复 0 次以上以允许单个条目
  • $ 字符串结尾

Regex demo

关于regex - 正则表达式仅允许数字、带点、& 和空格的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56982697/

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