HH:MM:SS 时间字符串的正则表达式模式

2023-11-27

我想解析一个hh:mm:ss细绳。 一个简单的就是([0-1]?\d|2[0-3]):([0-5]?\d):([0-5]?\d)期望2:3:24 or 02:03:24细绳。

我想更进一步并通过验证,即使在类似的情况下

  1. 如果你只输入 56,应该会通过,因为 56 可以被认为是 56 秒 [SS]
  2. 如果您输入 2:3 或 02:03 或 02:3 或 2:03 它应该通过。 2 分 3 秒 [MM:SS]
  3. 如果您输入 20:30:12 包含 20 小时 30 分 12 秒 [HH:MM:SS]
  4. 如果你输入 78:12 ,不通过 78 分钟是错误的......

基本上,如果找到一个“:”,则将“:”之前的数字视为MM,将“:”之后的数字视为SS 。如果找到两个“:”,则视为 HH:MM:SS

我想出了这个模式。

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

看起来运行良好。我想知道任何其他更简单的正则表达式,可以完成这项工作。


^(?:(?:([01]?\d|2[0-3]):)?([0-5]?\d):)?([0-5]?\d)$

解释:

^                   # Start of string
(?:                 # Try to match...
 (?:                #  Try to match...
  ([01]?\d|2[0-3]): #   HH:
 )?                 #  (optionally).
 ([0-5]?\d):        #  MM: (required)
)?                  # (entire group optional, so either HH:MM:, MM: or nothing)
([0-5]?\d)          # SS (required)
$                   # End of string
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HH:MM:SS 时间字符串的正则表达式模式 的相关文章

随机推荐

  • 在逻辑删除后恢复 LongListSelector 中的滚动位置

    我正在尝试使用 WP7 Silverlight 工具包中的 LongListSelector 控件 这需要一些工作 但我终于让它与我的应用程序一起工作 不幸的是 我在正确处理逻辑删除过程时遇到了一些麻烦 当应用程序逻辑删除 或用户通过选择列
  • 如何在C#.NET中获得准确的下载/上传速度?

    我想使用 C NET 通过网络接口获得准确的下载 上传速度 我知道可以使用以下方法计算GetIPv4Statistics BytesReceived并使线程休眠一段时间 但它并没有给出我在浏览器中得到的输出 下面是来自 LINQPad 的一
  • 如何使用不显眼的 jQuery 验证手动重新验证/触发验证?

    我创建了自己的条件验证属性 通过继承来在客户端和服务器上验证我的 MVC 模型RequiredAttribute并实施IClientValidatable 这个想法是 如果我的模型上的布尔属性为 true 则需要另一个属性 在视图中 这表现
  • 为什么要在 Observable 函数上调用 .call() ?

    我是 Angular 的相对初学者 我正在努力理解我从 ng bootstrap 项目中阅读的一些源代码 源代码可以在这里找到 我对 ngOnInit 中的代码感到非常困惑 ngOnInit void const inputValues d
  • C 标准是否认为此标头中有一个或两个“struct uperms_entry”类型?

    您能否给出三个 C 标准 最好是 C99 或 C11 之一的章节和章节 表明以下头文件是否有一个或两个struct uperms entry类型在里面 ifndef UPERMS CACHE INCLUDE define UPERMS CA
  • Java中null是如何实现的?

    我知道 null 不是一种数据类型 But null只能分配给任何类型Object and String Example Object o null it tells that null is an object String b null
  • 如何根据内容动态调整 Twitter Bootstrap 模式的大小

    我有数据库内容 其中包含不同类型的数据 例如 Youtube 视频 Vimeo 视频 文本 Imgur 图片等 它们都有不同的高度和宽度 我在互联网上搜索时发现的只是将大小更改为仅一个参数 它必须与弹出窗口中的内容相同 这是我的 HTML
  • 如何在 Android 上检测网络是否(配置为)移动热点?

    从 Android 4 1 开始 您的设备可以检测是否已连接到移动热点 假定移动热点也运行 Android 4 1 或更高版本 此外 您还可以选择将网络标记为移动热点 在 设置 数据使用 溢出菜单 移动热点 下 但作为一个用户 我指的是开发
  • Perl 新行分隔符问题

    我有一个使用 CR LF 分隔记录的文件 但个别记录有时包含 LF while lt in gt extract record data 我正在尝试按上面的方式阅读此代码 这 正如我所期望的 会拆分仅包含 LF 的记录 然而 我希望重新分配
  • HTMLAgilityPack - 删除节点而不剥离内部文本

    我的html内容是 a href asdf asdf a h5 align left a href d570525d497 htm toc Table of Contents a br h5 我正在使用 HTML Agility Pack
  • 使用 junitPlatform 时设置系统属性

    我无法找到使用 Gradle 执行 JUnit 5 测试时如何设置系统属性 标准test任务可以配置如下 test systemProperty org slf4j simpleLogger defaultLogLevel warn 但是
  • 整数a; ...; (a == a) 失败?

    如果我们设置float and double键入至NaN那么它们不等于任何东西 包括他们自己 这样的事会发生吗int 如果将未初始化的变量与其自身进行比较 任何事情都可能发生 毕竟这是未定义的行为 对于初始化的 int 变量 这种情况不会发
  • 射线体素相交

    我想测试光线与体素场的交点 我可以通过计算与当前体素边缘的射线盒相交来天真地爬过体素场 然后对下一个体素执行相同的操作 直到碰到某些东西 但是没有更快的方法来追踪体素场吗 我在想一些类似的事情Bresenham 直线算法在 3D 中 可以快
  • TypeError:在未实现 HTMLElement 接口的对象上调用“click”

    我有一些 javascript 将数据发送到调用 php 页面的函数 但是我收到一个错误 无法找到任何信息 postData 调用位于另一个普通 JavaScript 函数的中间 但我无法让它将数据提交到 php 页面 function p
  • 如何发布照片。 iOS Facebook SDK 3.1

    我需要在墙上发布一张照片 图片是在我的 iPad 应用程序中生成的 这是我发现的最简单的方法 void postImageToFB UIImage image NSData imageData UIImageJPEGRepresentati
  • 将图像元数据 (EXIF/TIFF/IPTC) 写入 OS X 中的图像文件

    我正在创建一个照片编辑应用程序 到目前为止 我已经成功地从图像文件中读取元数据 在得到这个问题的答案后 在 OS X 上打开 NSImage 时从 EXIF 读取相机数据 source CGImageSourceCreateWithURL
  • Excel 互操作替代方案

    我已开始使用 Microsoft 为我的 C 应用程序之一提供的 Excel 互操作程序集 一切都很顺利 但似乎缺乏强类型 老实说感觉就像我正在编写 VBA 代码 是否有其他方法可以通过 C 与 Excel 进行交互 从而提供更好的 OO
  • Youtube APIeekTo() 以浮点秒为单位

    Youtube API seekTo 函数接受浮点时间还是帧时间 您可以向下钻取至小数点后两位吗 是的 API 完美接受 float 形式的eekTo 时间 无论是什么 它都会前进到浮动之前最近的关键帧 这是一个演示 http goo gl
  • 为什么要在列表视图中使用 Inflater

    我总是对为什么我们需要在 android 中使用 inflater 感到困惑 为什么它们在 ListView 中用于自定义布局 如下所示 什么是充气机 使用充气机有什么好处 public class MobileArrayAdapter e
  • HH:MM:SS 时间字符串的正则表达式模式

    我想解析一个hh mm ss细绳 一个简单的就是 0 1 d 2 0 3 0 5 d 0 5 d 期望2 3 24 or 02 03 24细绳 我想更进一步并通过验证 即使在类似的情况下 如果你只输入 56 应该会通过 因为 56 可以被认