我正在尝试使用以下模式解析ISO 8601持续时间:
P(\d+Y)?(\d+M)?(\d+D)?(\d+W)?T(\d+H)?(\d+M)?(\d+S)?
但问题是它适用于PT158M12S
但不适用于PT12S158M
。可以在P
之后制作小组,T
之后的小组是否可以按任何顺序排列?
答案 0 :(得分:2)
尝试
P(\d+[YMDW]){0,4}T(\d+[HMS]){0,3}
(Rohit答案的缩短版)
然而,这并不妨碍重复任何组,例如PT1M2M
。之后你必须检查一下。
答案 1 :(得分:0)
Google的Closure库具有内置函数,用于解析此类ISO 8601持续时间:Interval.fromIsoString(duration)