【问题标题】:C# ISO 8601 Time Interval validation [duplicate]C# ISO 8601 时间间隔验证 [重复]
【发布时间】:2010-10-26 08:38:47
【问题描述】:

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

我需要验证 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。

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

非常感谢。

【问题讨论】:

    标签: regex time intervals iso8601


    【解决方案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-11-12
      • 1970-01-01
      • 2019-06-16
      • 1970-01-01
      • 2013-04-05
      • 1970-01-01
      • 2011-01-10
      • 2017-04-29
      • 1970-01-01
      相关资源
      最近更新 更多