如何用Ruby正则表达式匹配多位数范围?

如何用Ruby正则表达式匹配多位数范围?,ruby,regex,Ruby,Regex,我正在尝试匹配格式为“0000”到“2459”的时间码。如何匹配特定范围内的数字,以便能够专门匹配0到24之间的所有数字以及0到59之间的所有数字,而不匹配任何较大或较小的数字 我知道如何匹配每个数字,但这并不能满足我的需要,例如 /[0-2][0-4]/ 将捕获数字0-4、10-14和20-24,忽略介于两者之间的数字。因此,我想捕获多个数字的全包信息。以下内容可以实现这一目的: /(?:[01][0-9]|2[0-4])[0-5][0-9]/ 说明: ?:使括号不可捕捉 在括号中,我们

我正在尝试匹配格式为“0000”到“2459”的时间码。如何匹配特定范围内的数字,以便能够专门匹配0到24之间的所有数字以及0到59之间的所有数字,而不匹配任何较大或较小的数字

我知道如何匹配每个数字,但这并不能满足我的需要,例如

/[0-2][0-4]/

将捕获数字0-4、10-14和20-24,忽略介于两者之间的数字。因此,我想捕获多个数字的全包信息。

以下内容可以实现这一目的:

/(?:[01][0-9]|2[0-4])[0-5][0-9]/
说明:

  • ?:
    使括号不可捕捉
  • 在括号中,我们只匹配00-19或20-24
  • 在那之后我们以00比59进行比赛

    • 代码模块10>59
      时,塞巴斯蒂安的回答失败。 例如,它无法识别
      1080

      使用
      /(?:[01][0-9][0-9]| 2(?[0-3][0-9]| 4[0-5]))[0-9]/
      , 以4位数字开头的

      • 使用0或1,或
      • 23岁,或
      • 245