我制作了一个正则表达式来解析格式“DD-MM-YYYYhh:mm”的日期和时间,但它似乎不起作用我不知道为什么。我没有收到任何错误,但它只是不接受我可以传递给我的程序的任何日期和时间。
let checkDate d t =
match Str.string_match (Str.regexp "\\([0][1-9]\\|[12][0-9]\\|3[0-1]\\)-\\([0][1-9]\\|1[0-2]\\)-\\(2[0-9]{3}\\)\\([0-1][0-9]\\|2[0-3]\\):\\([0-50-9]\\)") (d ^ t) 0 with
| true -> true
| false -> false
in
我可能做错了什么?
答案 0 :(得分:1)
{3}
不是Str。中的正则表达式构造。
let checkDate d t =
let dr = "\\(0[1-9]\\|[12][0-9]\\|3[0-1]\\)" in
let mr = "\\([0][1-9]\\|1[0-2]\\)" in
let yr = "\\(2[0-9][0-9][0-9]\\)" in
let hr = "\\([0-1][0-9]\\|2[0-3]\\):\\([0-50-9]\\)" in
Str.string_match (Str.regexp (dr ^ "-" ^ mr ^ "-" ^ yr ^ hr)) (d ^ t) 0
此功能有效。
# checkDate "16-05-2017" "12:55";;
- : bool = true
# checkDate "16-05-2017" "12:65";;
- : bool = false