我试图生成多个路由,所有这些都是基于时间的视频。在一定的时间范围内使用同一条路线。
是否可以使用regex获取(包括)两个时间点之间的所有值?
一些regex确实比较数字。这个匹配所有大于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附加上下文:使用路径对正则表达式,我可以做一些像/:lang(en|es)这样的事情来匹配英语或西班牙语。我正在试验如何传递/:timecode(regexp),以匹配两个时隙之间的任意时间码。
这将为/00:00和/00:01提供一条相同的路线。
发布于 2018-11-09 23:59:37
通常,使用正则表达式可能不是最好的解决方案。根据工具的不同,可能有更好的解决方案。然而,这在某种程度上是可能的。
如何创建正则表达式
让我们假设我们的timecodes总是有以下格式:mm:ss。您可能需要匹配从22:22到77:77的所有时间序列。这意味着,当下列语句之一为真时,正则表达式将匹配。
2开头,其余字符串为2:22或更高版本。3、4、5或6开头。7开头,字符串的其余部分为7:77或更低。这意味着至少有一个以下三个正则表达式必须匹配:
/2{2:22 or higher}//[3-6]\d:\d\d//7{7:77 or lower}/这意味着最后的正则表达式如下所示。被花括号({})包围的部件将在稍后得到解决。
/2{2:22 or higher}|[3-6]\d:\d\d|7{7:77 or lower}/现在,我们必须解决{2:22 or higher}和{7:77 or lower}问题。如果下列语句之一为真,则表单x:xx的字符串为2:22或更高。
2:开头,其余字符串为22或更高版本。3、4、5、6、7、8或9开头。因此,可以将{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://stackoverflow.com/questions/53217357
复制相似问题