2

我已经搜索了一段时间,似乎找不到与此相关的任何内容。

我需要验证 ISO 8601 时间间隔。有很多关于 ISO 8601 日期时间的东西,但我特别需要间隔。我正在使用正则表达式,这就是我到目前为止所拥有的;

正则表达式 regEx = new Regex(@"^P((\d+)Y)((\d+)M)((\d+)D)(T)((\d+)H)((\d+)M)(( \d+((.)?(\d)?(\d)?))S)$");

所以基本上这会检查输入字符串是否完全形成,例如 P0Y0M1DT1H2M2.01S 将被验证,但标准规定也应接受较小的字符串,如 PT4S。

如果有人可以帮助我,我将不胜感激。我一直在阅读条件正则表达式,但不太确定如何使用它。

非常感谢。

4

1 回答 1

1

我创建了一个正则表达式来获取有关 ISO 8601 中间隔的信息。检查一下:

^(P((?<Years>\d+)Y)?((?<Months>\d+)M)?((?<Days>\d+)D)?)(T((?<Hours>\d+)H)?((?<Minutes>\d+)M)?((?<Seconds>\d+((.)?(\d)?(\d)?))S)?)$
于 2011-04-04T19:20:02.870 回答