0

次のパターンでISO8601の期間を解析しようとしています。

P(\d+Y)?(\d+M)?(\d+D)?(\d+W)?T(\d+H)?(\d+M)?(\d+S)?

しかし、問題はそれが動作するPT158M12Sが動作しないことPT12S158Mです。後Pのグループと後のグループTを任意の順序で作成することはできますか?

4

2 に答える 2

2

試す

P(\d+[YMDW]){0,4}T(\d+[HMS]){0,3}

(Rohitの回答の短いバージョン)

ただし、これはグループの繰り返しを妨げるものではありませんPT1M2M。後で確認する必要があります。

于 2013-02-05T13:03:06.373 に答える
0

GoogleのClosureライブラリには、このようなISO 8601期間を解析するための組み込み関数があります。Interval.fromIsoString(duration)

于 2013-02-05T13:21:50.063 に答える