我正在尝试匹配格式为“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之间的数字。
Sebastian的答案在code MOD 10 > 59时会失败。例如,它无法识别1080 使用/(?:[01][0-9][0-9]|2(?:[0-3][0-9]|4[0-5]))[0-9]/代替,该正则表达式接受以4位数字开头的数字: 以0或1开头,或者 以23开头,或者 以245开头