匹配音频文件长度的秒和毫秒

问题描述

我目前正在使用 ranorex 来测试音频播放器,我有一个按钮,它只会播放音频 2 秒,然后它就会停止。一旦音频停止播放,我想以秒和毫秒为单位验证播放位置

我的验证范围 = 成功是 { 1,994s 到 2,006s} 验证范围 = 失败是 { 任何低于 1,994 秒}

我已经写下了正则表达式来检查秒应该是 1 还是 2,除了任何会导致验证失败的事情 秒的正则表达式:^0([1-2]{1})$

毫秒的正则表达式:我想构建一个接受从 994 到 006 的所有数字的正则表达式

任何导致那个

谢谢

解决方法

模式 ^0([1-2]{1})$ 可以缩短为 ^[12]$,但如果您在其后面添加数字,由于字符类 [12],所有匹配项都可以以 1 或 2 开头,并且可以导致匹配过多。

要匹配 1,994 到 2,006,您可以使模式更具体一些:

^(?:1,99[4-9]|2,00[0-6])$
  • ^ 字符串开头
  • (?: 非捕获组
    • 1,99[4-9] 匹配 1,99 和数字 4-9
    • |
    • 2,00[0-6] 匹配 2,00 和一个数字 0-6
  • ) 关闭群组
  • $ 字符串结束

Regex demo