猿问

文件名与 Python 正则表达式匹配

我从我的电子邮件中删除了一个文本文件,其中包含 1 个附件/邮件。附件以完全不同的格式以不同的名称存在,例如:


filename="John_wheeler 11041997 resume.pdf";

filename="Kujal_newResume(1).pdf"; 

filename=JohnKrasinski_Resume.pdf

我的问题是:有没有办法找到一个 RegEx 模式,该模式将从filename=点字符(与文件扩展名分开)开始搜索并一直搜索?获取文件扩展名将是下一个任务,但我现在可以坚持下去。请帮我解决这个问题。


ibeautiful
浏览 410回答 3
3回答

阿波罗的战车

你可以试试这个模式: filename="?([^.]+)它假设点将文件名与扩展名分开。解释:filename="?-filename=字面匹配,tehn 匹配 0 或 1 个撇号"([^.]+)- 匹配一个或多个不是点的字符(匹配所有点直到点)并将其存储在捕获组中您想要的文件名将存储在捕获组中。演示EXTRA:要捕获文件扩展名,您可以使用这样的模式:filename="?([^.]+)\.([^";]+)这里的附加内容是\.([^";]+):将点字面意义与\.. 然后它匹配一个或多个除模式"或;模式之外的字符,[^";]+并将其存储在第二个捕获组中。另一个演示

胡子哥哥

我不确定您期望的输出。但这可能会有所帮助。正则表达式演示(?<=filename=)[\"]?(\w.*[.].*)(?<=\w)[\"]?或者,如果您想忽略文件扩展名:(?<=filename=)[\"]?(\w.*)[\.]

慕婉清6462132

以下情况如何:(?:filename=)([^\.]*)\.(\w*)此 REGEX 返回包含您感兴趣的不同元素的不同组。
随时随地看视频慕课网APP

相关分类

Python
我要回答