Python正则表达式修正:匹配recording_i.file_extension格式文件名
修正后的正则表达式解决方案
你的问题很典型——原正则的问题出在没有锚定字符串的起始和结束位置,同时\d*允许匹配零个数字,这就导致了那些不符合预期的文件名被误匹配。咱们来一步步修正:
最终正则表达式
^recording_\d+\.[a-zA-Z0-9]+$
各部分拆解说明
^:强制匹配字符串的起始位置,彻底杜绝类似lalala_recording_1.mp4这种前缀带额外内容的文件名recording_:精确匹配固定前缀,确保文件名开头就是这个标识\d+:匹配至少一个数字(+表示1次或多次),直接排除了recording_.mp4这种没有数字的无效情况\.:转义后的点字符,匹配文件名和扩展名之间的分隔符(原正则里的\..*会匹配点之后的任意字符,包括多个点,这里我们更精准地限制了扩展名范围)[a-zA-Z0-9]+:匹配至少一个字母或数字的扩展名,覆盖mp4、mov这类常见格式;如果需要支持带下划线/连字符的扩展名,可以改成[a-zA-Z0-9_-]+$:强制匹配字符串的结束位置,避免匹配类似recording_1.mp4.bak这种带多余后缀的文件
测试验证
✅ 能正确匹配的文件名:
- recording_1.mp4
- recording_112.mp4
- recording_11.mov
❌ 会被正确排除的无效文件名:
- lalala_recording_1.mp4(前缀有额外内容)
- recording_.mp4(缺少数字部分)
- recording_1(没有扩展名)
- recording_1.txt.mp4(扩展名后有多余内容)
内容的提问来源于stack exchange,提问作者Nikto
相关产品推荐
相关产品推荐

