python - 具有正前瞻的 Python 正则表达式可选捕获组
问题描述
试图找到某些文件夹模式。我可以有一个简单的 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## folder
. 我想我需要一个 postie 前瞻,但不确定如何将它与可选的捕获组一起使用。
解决方案
尝试使用这个:
pattern = re.match(".*name(_a[0-9]*)?$", dir)
我只是$
在第一个下划线之后添加以匹配字符串的结尾。我还添加[0-9]*
了匹配零个或多个数字。
现场示例:
推荐阅读
- html - 如何覆盖 Bootstrap CSS 样式以使用 CSS 进行自定义
- python - 正则表达式搜索自动化无聊的东西、功能和错误
- php - 将左连接合并到我的查询中但失败了
- c++ - GetLastError 在调用 WinHttpSendRequest 后返回 6
- python - 删除变量的否定
- r - 为data.frame中的每一行存储集合或向量的Tidy R方法?
- sql - SQL 命令未在带有子查询的 Live SQL 上正确结束
- javascript - 将一系列数字的每个可能组合分配给变量
- c# - C# gremlin 服务器实现
- python - 如何强制我的代码执行下一个 for 循环?