python - 如何将所有文件名与 .csv 和 .xlsx 匹配,最少一个字符?
问题描述
假设我有以下正则表达式regex_ = r'^((?!~\$).)+\.(xls(x?)|csv)$'
和代码片段:
all_files = [f_path + filename for f_path, _, filenames in os.walk(curr_path) for filename in filenames if re.search(regex_, filename)]
curr_path
当前工作目录在哪里- curr_path = os.getcwd()
.
我是否正确解释上面的代码检索属于文件的所有文件名.csv
或.xlsx
扩展名curr_path
?
解决方案
我的猜测是,您可能想到的表达式可能是:
^(?:(?!~\$).)+\.(?:xlsx?|csv)$
这只会使任何此类字符串失败:
~$.csv
~$.xls
~$.xlsx
并且在所需的扩展之前还需要至少一个字符。
演示
该表达式在regex101.com的右上角面板上进行了说明,如果您希望探索/简化/修改它,并且在此链接中,您可以查看它如何与一些示例输入匹配,如果您愿意的话。
正则表达式电路
jex.im可视化正则表达式:
推荐阅读
- c# - 选择特定项目时删除组合框项目
- typescript - 在 Typescript 中创建“toFunc”泛型方法?
- unity3d - Facebook 登录 - 在 android 上恢复“用户取消登录”
- android - 任务“:prepareDebugDependencies”执行失败
- html - 在角度 6 中动态更改复选框的工具提示文本
- image - MS Access 根据报表中的组合框选择显示图像
- google-apps-script - 如何在只读电子表格中运行 Google Apps 脚本?
- javascript - CSS - 由三角形组成的边框
- opengl - TextureArray 与 image2D/Computeshader
- c# - 多个线程同时更新 AZURE 表中同一行的不同列