C#ISO 8601时间间隔验证

时间:2010-10-26 08:38:47

标签: regex time intervals iso8601

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

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

正则表达式regEx =新正则表达式(@“^ P((\ d +)Y)((\ d +)M)((\ d +)D)(T)((\ d +)H)((\ d +)M )((\ d +(()(\ d)(\ d))。???)S)$“);

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

如果有人能帮助我,我将不胜感激。我一直在阅读条件正则表达式,但不太清楚如何工作。

非常感谢。

2 个答案:

答案 0 :(得分:2)

毕竟我确实找到了答案作为Scorm相关问题的一部分。

链接在这里,如果有人设法首先绊倒我的帖子;

SCORM 2004 Time Format - Regular Expression?

答案 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)?)$