В вашем случае это достаточно просто:
\b(?:2010/12/(?:3[01]|2[5-9])|2011/01/01)\b
будет соответствовать строке, содержащей дату в указанном вами диапазоне.Но, как правило, регулярные выражения не подходят для сопоставления диапазонов дат.Это всегда возможно, но редко бывает хорошим.
Например, для диапазона 2003/04 / 25-2011 / 04/04 вы получите
\b(?:
2003/04/(?:30|2[5-9])|
2003/(?:(?:0[69]|11)/(?:30|[12][0-9]|0[1-9])|(?:0[578]|1[02])/(?:3[01]|[12][0-9]|0[1-9]))|
2011/04/0[1-4]|2011/(?:02/(?:[12][0-9]|0[1-9])|0[13]/(?:3[01]|[12][0-9]|0[1-9]))|
(?:2010|200[4-9])/(?:02/(?:[12][0-9]|0[1-9])|(?:0[469]|11)/(?:30|[12][0-9]|0[1-9])|(?:0[13578]|1[02])/(?:3[01]|[12][0-9]|0[1-9]))
)\b
Если бы мне пришлосьсделать что-то вроде этого (и не может использовать даты создания в атрибутах файла), я бы либо использовал RegexMagic (для создания регулярных выражений диапазона дат) и PowerGREP (для выполнения поиска), если это одноразовая работа, но онидоступны только в Windows.Если бы мне приходилось делать это чаще, я бы написал небольшой скрипт на Python, который просматривал мое дерево каталогов, анализировал дату для каждого каталога, проверял, находится ли он в диапазоне, а затем просматривал файлы в этом каталоге.