我有一个CSV文件,其中包含一个表示时间/日期的字符串,如下所示:
20190816T16:10:10
我为preg_match创建了以下正则表达式,但希望将小时/分钟和秒设置为仅允许某些数字(例如,小时将是24小时制,因此仅接受00-23,而分钟和秒仅接受00- 59)
/\d{8}[A-Z]\d{2}:\d{2}:\d{2}/
有人可以建议如何更改此设置,以确保此正则表达式与我要实现的结构相匹配吗?
答案 0 :(得分:3)
答案 1 :(得分:1)
此正则表达式应符合您的结构:
\d{8}[A-Z]([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]
答案 2 :(得分:1)
您可以将范围(例如:[0-9]
)与非捕获组一起使用小时(分钟和秒很容易匹配):
// 00 to 23 00 to 59
/\d{8}[A-Z](?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d/