使用正则表达式选择指定范围内的文件

时间:2019-02-05 09:35:41

标签: regex pyspark filepath

我有一个包含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。

编辑:我想每隔10天读取一次 pyspark 中的大型数据集,到目前为止,所有建议的答案似乎都失败了。

2 个答案:

答案 0 :(得分:2)

如果您希望将“ 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

答案 1 :(得分:0)

如何?

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

'?:'用于不带字幕的组。