如何优化正则表达式以查找日/月/年格式的日期?

我目前正在阅读《无聊的东西自动化》一书,这是第7章中的第一个实际问题:

编写一个可以检测DD / MM / YYYY格式的日期的正则表达式。假设日期的范围是01到31,月份的范围是01到12,年份的范围是1000到2999。请注意,如果日期或月份是一位数字,则前导零。

我想出了这个正则表达式,但是我敢肯定它会比这种a难简单得多:

r"^((([0-2]{1})\d{1})|([3][0,1]))\/(([0]{1}\d{1})|([1][0-2]))\/([1,2]\d{3})$"