假设我有以下正则表达式 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()
。
我的解释是否正确:上面的代码检索了 curr_path
中属于 .csv
或 .xlsx
扩展名的文件的所有文件名?
最佳答案
我的猜测是,您可能想到的表达方式可能是:
^(?:(?!~\$).)+\.(?:xlsx?|csv)$
这会使任何此类字符串失败:
~$.csv
~$.xls
~$.xlsx
并且它还需要在所需扩展名之前至少有一个字符。
DEMO
<小时/>该表达式在 regex101.com 的右上角面板中进行了解释,如果您想探索/简化/修改它,请在this link中,如果您愿意,您可以观察它如何与一些示例输入匹配。
<小时/>正则表达式电路
jex.im可视化正则表达式:
关于python - 如何将所有 .csv 和 .xlsx 文件名与最少一个字符相匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57263379/