2010-02-02 98 views
0

我正在根据日期设置的目录结构:2010/02/01mod_rewrite的数字范围

现在,我重写规则是这个样子:

([0-9] {4 ([01-12] {2})/([0-9] {2})/([0-9] {2})

我尝试限制范围 - 月份,例如: - 但这似乎不起作用。有没有办法做到这一点,还是我让这太复杂,我不应该担心它?

我不希望是这样的:(01 | 02 | 03 ... 10 | 11 | 12)

的感谢!

回答

0

正则表达式不会将数字看作数字。它将每个单独的数字看作一个字符。所以,[01-12]实际上会歧视[012]或[0-2]。 (有人纠正我,如果我错了这一点。)

我不是在RexEx高手,所以有人可能有一个更好的解决方案,但在这里就是我想要的使用:

(2\d{3})/(1[0-2]|0[1-9])/(3[0-1]|[1-2]\d|0[1-9]) 

未测试,但这应该限制你的一年到2000年,你的月份到01-12,你的日子到01-31。

+0

看起来你是正确的:http://www.regular-expressions.info/numericranges.html – cmptrgeekken 2010-02-02 02:36:46

+0

太棒了,谢谢你的检查。 = D – 2010-02-02 02:43:50

+0

这很好用!然而 - \ d无法正常工作,所以我将它们改为[0-9] – neil 2010-02-02 02:45:50