相关疑难解决方法(0)

在正则表达式中匹配小时/分钟/秒 - 更好的方法?

所以我需要从这些条目中获得数小时,分钟和秒:

  • 4点43分12秒
  • 9.43.12
  • 1:00
  • 01.04
  • 59
  • 09

前两个是小时,分钟和秒.接下来是分钟和秒.最后两个只是秒.

我想出了这个正则表达式,它有效..:

\A(?<hours>\d{1,2})(?::|\.)(?<minutes>\d{1,2})(?::|\.)(?<seconds>\d{1,2})\z|\A(?<minutes>\d{1,2})(?::|\.)(?<seconds>\d{1,2})\z|\A(?<seconds>\d{1,2})\z
Run Code Online (Sandbox Code Playgroud)

但它很丑陋,我想重构它不是3种不同的表达方式(大多数只是为了学习).我试过这个:

\A(?:(?<hours>\d{1,2})(?::|\.){0,1})(?:(?<minutes>\d{1,2})(?::|\.){0,1})(?:(?<seconds>\d{1,2}){0,1})\z
Run Code Online (Sandbox Code Playgroud)

但这不起作用 - 分钟和秒钟有时会搞砸.我的大脑受伤了,我无法弄明白,我做错了什么.

regex language-agnostic

7
推荐指数
2
解决办法
8337
查看次数

标签 统计

language-agnostic ×1

regex ×1