所以我需要从这些条目中获得数小时,分钟和秒:
前两个是小时,分钟和秒.接下来是分钟和秒.最后两个只是秒.
我想出了这个正则表达式,它有效..:
\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)
但这不起作用 - 分钟和秒钟有时会搞砸.我的大脑受伤了,我无法弄明白,我做错了什么.