尝试查找某些文件夹模式。我可以有一个简单的 if 语句,但现在我想知道,这可以用一个正则表达式模式来完成吗?
文件夹:
name
name_a01
name_a02
..
name_a20
name_dontuse_a10
<不想要这种模式
pattern = re.match(".*name(_a[0-9])?", dir)
上面匹配正确,但它同时匹配 name
和 name_dontuse_a10
pattern.group(1)
对这两个文件夹都返回None
,这样对我没有多大帮助。
我无法预测不需要的文件夹的名称,但我想要基本名称文件夹和任何 name_a## 文件夹
。我想我需要一个 postie 前瞻,但不确定如何将其与可选的捕获组一起使用。
最佳答案
尝试使用这个:
pattern = re.match(".*name(_a[0-9]*)?$", dir)
我刚刚添加了 $
以匹配第一个下划线之后的字符串结尾。我还添加了 [0-9]*
来匹配零个或多个数字。
实例:
关于Python 正则表达式可选捕获组,具有正向前瞻功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52955006/