Выберите файлы в указанном диапазоне с помощью регулярного выражения - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть папка с 100 папками, названная так:

parent_folder/05/01/
parent_folder/05/02/
parent_folder/05/03/
parent_folder/05/04/
...
parent_folder/05/29/
parent_folder/05/30/

Как указать с помощью регулярного выражения путь, который бы выбирал только содержимое папок 01 to 10, затем 11 to 20 инаконец, 21 to 30?

Я пытаюсь

"parent_folder/05/[1-10]*/*"

, но также выбирает 11, 12, ... вплоть до 19.

РЕДАКТИРОВАТЬ : IЯ хочу прочитать большой набор данных в pyspark с 10-дневными интервалами, и все предложенные ответы пока не дают результатов.

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Как насчет этого:

parent_folder/05/(?:0[1-9]|10)/

'?:' Используется для групп без фиксации.

0 голосов
/ 05 февраля 2019

Если вы хотите, чтобы "10" были сгруппированы с вашим набором 01 ... 09, вы будете использовать что-то вроде этого:

parent_folder\/05\/(0[1-9]|10)\/

тогда, для вашего10 ... 20 комплектов,

parent_folder\/05\/(1[1-9]|20)\/

и т. Д.

Вы можете попробовать эти регулярные выражения по следующей ссылке: https://regex101.com/r/cXAYbS/2

В python вам понадобится:

regex = r"parent_folder\/05\/(1[1-9]|20)\/"

Ссылка выше имеет генератор "python", где вы можете позаимствовать некоторый код:

https://regex101.com/r/cXAYbS/2/codegen?language=python

...