gpt4 book ai didi

正则表达式匹配数字范围或列表

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

我需要一个正则表达式来匹配数字列表和另一个匹配数字范围(表达式在这两种情况下都不会失败)。范围应由数字、破折号和另一个数字 (N-N) 组成,而列表应由以逗号分隔的数字 (N,N,N) 组成。下面是一些例子。

范围:

'1-10' => OK
Whateverelse => NOK (e.g. '1-10 11-20')

列表:
'1,2,3' => OK
Whateverelse => NOK

这是我的两个正则表达式:
  • [0-9]+[\-][0-9]+
  • ([0-9]+,?)+

  • ...但我对它们有一些问题...例如:

    评估时 '1-10' , 正则表达式 2 匹配 1 ...但它不应该匹配任何内容,因为该字符串不包含列表。

    然后,在评估 '1-10 11-14' 时, 正则表达式 1 匹配 1-10 ...但它不应该匹配任何内容,因为字符串包含的不仅仅是一个范围。

    我错过了什么?谢谢。

    最佳答案

    尝试这个:

    ^((\d+-(\*|\d+))|((\*|\d+)-\d+)|((\d)(,\d)+))$

    检测结果:
    1-10         OK
    1,2,3 OK
    1-* OK
    *-10 OK
    1,2,3 1-10 NOK
    1,2,3 2,3,4 NOK
    *-* NOK

    正则表达式的可视化:

    Visualization of the regex

    编辑:为通配符添加 *根据OP的评论。

    关于正则表达式匹配数字范围或列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17745017/

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