Javascript 在两个时间码之间匹配所有时间码

Javascript 在两个时间码之间匹配所有时间码,javascript,regex,Javascript,Regex,我试图生成多条路线,这些路线都基于视频的时间码。在一定的时间范围内使用同一条路线 使用正则表达式是否可以获取两个时间码之间(包括两个时间码)的所有值? 一些。这个匹配所有大于954的数字 /[1-9]\d{3,}|9[6-9]\d|9[5-9]{2}/g 但有可能比较以下几点吗?(用正则表达式替换原始比较) 00:00一般来说,使用正则表达式可能不是最好的解决方案。根据工具的不同,可能会有更好的解决方案。然而,这在某种程度上是可能的 如何创建正则表达式 让我们假设我们的时间码总是具有以下格式:

我试图生成多条路线,这些路线都基于视频的时间码。在一定的时间范围内使用同一条路线

使用正则表达式是否可以获取两个时间码之间(包括两个时间码)的所有值?

一些。这个匹配所有大于954的数字

/[1-9]\d{3,}|9[6-9]\d|9[5-9]{2}/g
但有可能比较以下几点吗?(用正则表达式替换原始比较)


00:00一般来说,使用正则表达式可能不是最好的解决方案。根据工具的不同,可能会有更好的解决方案。然而,这在某种程度上是可能的

如何创建正则表达式 让我们假设我们的时间码总是具有以下格式:
mm:ss
。您可能希望匹配从
22:22
77:77
的所有时间代码。这意味着当下列语句之一为真时,正则表达式应匹配

  • 时间代码以
    2
    开头,字符串的其余部分为
    2:22
    或更高
  • 时间码以
    3
    4
    5
    6
    开头
  • 时间代码以
    7
    开头,字符串的其余部分为
    7:77
    或更低
这意味着以下三个正则表达式中至少有一个必须匹配:

  • /2{2:22或更高版本}/
  • /[3-6]\d:\d\d/
  • /7{7:77或更低版本}/
这意味着最终的正则表达式将如下所示。被大括号(
{}
)包围的部分将在稍后解析

/2{2:22 or higher}|[3-6]\d:\d\d|7{7:77 or lower}/
现在,我们必须解析
{2:22或更高版本}
{7:77或更低版本}
。当下列语句之一为真时,形式为
x:xx
的字符串为
2:22
或更高

  • 字符串以
    2:
    开头,其余部分为
    22
    或更高
  • 字符串以
    3
    4
    5
    6
    7
    8
    9
    开头
因此,
{2:22或更高版本}
可以写成

/2:{22 or higher}|[3-9]:\d\d/
现在我们有以下内容

/2(2:{22 or higher}|[3-9]:\d\d)|[3-6]\d:\d\d|7{7:77 or lower}/
您可以重复此步骤,直到没有被大括号(
{}
)包围的零件留下。结果可能如下所示

/2(2:(2[2-9]|[3-9]\d)|[3-9]:\d\d)|[3-6]\d:\d\d|7(7:(7[0-7]|[0-6]\d)|[0-6]:\d\d)/

我建议您将时间码转换为时间变量,这样您就可以轻松地进行计算。您使用的编程语言是什么?您链接的正则表达式匹配的是时间范围而不是时间,您能澄清一下吗?无论如何,给定一个时间开始和一个时间结束,您需要的不仅仅是纯正则表达式来匹配这两个时间段之间的所有时间。然而,一种语言可以生成一个与它们匹配的正则表达式(但如果没有正则表达式,可能会做得更好)。对于一个范围的一般情况,正则表达式非常难看、冗长,编写起来也很痛苦。正则表达式并不是这项工作的最佳工具。我建议将其转换为一个整数值(例如,从午夜开始的秒数,或从最后一个小时开始的秒数等),并使用数学检查该值是否在低/高值范围内。您的问题是什么?你想知道如何创建这样的正则表达式吗?这真的很酷,非常感谢。在我看到你的答案之前,我被困在了这个阶段。
([0-5]。[0-9]?| 60)(?:[:])([0-5]。[0-9]?| 60))
。。。远非解决之道!谢谢again@AstenMies我刚刚意识到,在冒号后面有一个超过60秒的时间码是不太合理的然而,我想这个过程还是可以理解的。是的,我想你一定有一块非常不寻常的手表;)但事实上这并不重要,这是可以理解的