可以分三步写吧:若小于10的则用:[1-9]{1}大于等于10小于30:[1-2]{1}[0-9]{1}最后是30和31:[3][0,1]
([1-2]\d|3[0-1]|[1-9])我修改了下Raiuy的答案,他的匹配31这个字符就点问题,会单独匹配到3和1.有什么不懂的,请继续追问.
([1-9]|[1-2]\d|3[0-1])