匹配时间范围的正则表达式 00:00:00

Regular expression to match time range 00:00:00

我以前曾在简单的比赛中涉足正则表达式,但我认为这超出了我的能力范围。我正在使用 Google Analytics (GA),我想匹配 00:00:00.

格式的会话持续时间

我找到了一些与我需要的相似但不符合范围的文章:

(^([0-1]?\d|2[0-9]):([0-9]?\d):([0-9]?\d)$)|(^([0-9]?\d):([0-9]?\d)$)|(^[0-9]?\d$)

问题是我有很多访问持续了 1 秒,有些访问持续了 1 小时 实际访问持续了 10 秒到 10 分钟 。由于无效访问的数量,我的平均值是有偏差的。所以我想通过正则表达式在 GA 中添加一个过滤器来匹配 00:00:1000:10:00 之间的时间。

这可能有助于...无需使用组且易于维护的答案:

00:10:00|00:0[1-9]:[0-5][\d]|00:00:[1-5]\d

合作
00:00:00 ignore
00:00:01 ignore
00:00:10 accept
00:00:11 accept
00:00:59 accept
00:00:60 ignore
00:05:03 accept
00:09:59 accept
00:10:00 accept
00:10:01 ignore
00:10:50 ignore
01:20:00 ignore

它将处理 10 秒(含)到 10 分钟(含)之间的所有内容,不包括其他所有内容。

您可以使用

/^[0-9]{2}:[0-9]{2}:[0-9]{2}$/

/^\d{2}:\d{2}:\d{2}$/

如果您只想匹配从 00:00:00 到 99:99:99

此处“^”指定模式开始,“$”指定模式结束。 如果您不使用它们,该模式也将匹配“99:99:99:99999”,这不是预期的结果。因此指定它们以提及模式的开始和结束。

如果您还想匹配大于零的单个数字,如 9:9:96 和 01:8:20 等,请使用

/^([1-9]{1}|[0-9]{2}):([1-9]{1}|[0-9]{2}):([1-9]{1}|[0-9]{2})$/

Due to the quantity of invalid visits my average is skewed. So I want to add a filter in GA via regex to match times between 00:00:10 and 00:10:00.

解释这个需求,尝试这样的事情:

^00:(10:00|0[1-9]:[0-5][0-9]|00:[1-5][0-9])$

也就是说:

  • "hours"部分必须为00
  • "minutes" 部分可以是:01 to 09 后跟 any second(00 到 59)或 00 后跟 any second between 10 and 59.

几个测试值的结果:

00:00:00 NO
00:00:01 NO
00:00:10 YES
00:00:11 YES
00:00:20 YES
00:05:03 YES
00:09:59 YES
00:10:00 YES
00:10:50 NO
01:00:00 NO