我想验证时间,比如早上6:30或11:54,但不是UTC+6:30

本文关键字:UTC+6 时间 验证 | 更新日期: 2023-09-27 18:22:20

我目前使用的模式是:

(0*[1-9]|1[0-9]|2[0-3]):([0-5][0-9]) *(AM|am|PM|pm)*

但这也验证了"UTC+6:30"中的6:30我不希望它在"UTC+"或"UTC-"之后的任何时间进行验证

我想验证时间,比如早上6:30或11:54,但不是UTC+6:30

@TesselatingHeckler使用否定的后备断言的想法是正确的,但缺少一件重要的事情。你还需要一个单词边界锚:

(?<!UTC[+-])'b(0*[1-9]|1[0-9]|2[0-3]):([0-5][0-9]) *([AP]M|[ap]m)?

否则,UTC+11:00也将匹配(因为1:00是此正则表达式的有效匹配项)。

另一件事:为什么00:30是有效的匹配?不会

(?<!UTC[+-])'b([01]?[0-9]|2[0-3]):([0-5][0-9]) *([AP]M|[ap]m)?

变得更好?