Timespan-Regex与Days-Portion
我刚尝试了几百个(如果不是数千个……)RegEx可以得到我想要的东西……但是它们都没有用。
我只是在寻找一个正则表达式,代表TimeSpan days.hours:minutes:seconds
:7.00:00:00代表“7天”
遗憾的是这个不起作用:
(dd).(dd):(([0-6][0])|([0-5][0-9])):(([0-6][0])|([0-5][1-9]))
这是因为您的正则表达式模式预计会有2位数天,而您只有1位数。 只需将第一个数字选为?
(d?d).(dd):(60|([0-5][0-9])):(60|([0-5][0-9]))
或者更好,只需使用+来匹配一个或多个,因为该模式仍然不会匹配100天
(d+).(dd):(60|([0-5][0-9])):(60|([0-5][0-9]))
这个在技术上更正确,也可能更有效:
d+.((0?d)|(1d)|(2[0-3]))(:[0-5]d){2}
接受的答案似乎不适用于基本情况。
遵循TimeSpan解析规则,我提出了这种模式。
^((?:-?0*d+.)?(?:0*)(?:2[0-3]|1[0-9]|[0-9]))(?::0*([0-5]?[0-9]))?(?::0*((?:[0-5]?[0-9])(?:.d{0,7})?))?$
注意此模式将通过10.12
格式,而MSDN将此标记为无效格式。 这应该是IMO的有效格式。
这个对我很有用。
^(d{1,2}|d.d{2}):([0-5]d):([0-5]d)(.d+)?$
以下是不同输入的validation结果。
上述就是C#学习教程:Timespan-Regex与Days-Portion分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
+-----------------------+-------+ | Input | Valid | +-----------------------+-------+ | 1.10:14:15.1 | True | +-----------------------+-------+ | .10:14:15.1 | False | +-----------------------+-------+ | 1.10:14:15. | False | +-----------------------+-------+ | 1.10:14:15.123haha456 | False | +-----------------------+-------+ | 10:14:15.1 | True | +-----------------------+-------+ | 100:14:15.1 | False | +-----------------------+-------+ | 6:14:15.1 | True | +-----------------------+-------+ | :14:15.1 | False | +-----------------------+-------+ | 00:14:15 | True | +-----------------------+-------+
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1000172.html