gpt4 book ai didi

javascript - 匹配两个时间码之间的所有时间码

转载 作者:行者123 更新时间:2023-11-29 15:12:23 26 4
gpt4 key购买 nike

我正在尝试生成多条路线,这些路线均基于视频的时间码。在整个特定时间范围内使用同一条路线。

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

一些 regex do compare numbers .这个匹配所有大于 954 的数字。

/[1-9]\d{3,}|9[6-9]\d|9[5-9]{2}/g

但是否可以比较以下内容? (通过用正则表达式代替朴素的比较)

00:00<00:01 // should get 00:00 and 00:01 but not 00:02
00:00<00:02 // should get 00:00, 00:01 and 00:02

其他上下文:使用 path-to-regexp我可以做 /:lang(en|es) 之类的事情来匹配英语或西类牙语。我正在尝试传入 /:timecode(regexp) 以匹配两个时间码之间的任何时间码。

这将为 /00:00/00:01 提供同一条路线

最佳答案

通常,使用正则表达式可能不是最佳解决方案。根据工具的不同,可能会有更好的解决方案。但是,这是有可能的。

如何创建正则表达式

假设我们的时间码始终采用以下格式:mm:ss。您可能希望匹配从 22:2277:77 的所有时间码。这意味着当以下语句之一为真时,正则表达式将匹配。

  • 时间码以 2 开头,字符串的其余部分为 2:22 或更高。
  • 时间码以 3456 开头。
  • 时间码以 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 或更高。
  • 字符串以34567开头>、89

因此,{2:22 or higher}可以写成

/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)/

https://regex101.com/r/AsfRQt/1/tests

关于javascript - 匹配两个时间码之间的所有时间码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53217357/

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