为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

ibeautiful 2021-11-30 10:46:08
我从我的电子邮件中删除了一个文本文件,其中包含 1 个附件/邮件。附件以完全不同的格式以不同的名称存在,例如:filename="John_wheeler 11041997 resume.pdf";filename="Kujal_newResume(1).pdf"; filename=JohnKrasinski_Resume.pdf我的问题是:有没有办法找到一个 RegEx 模式,该模式将从filename=点字符(与文件扩展名分开)开始搜索并一直搜索?获取文件扩展名将是下一个任务,但我现在可以坚持下去。请帮我解决这个问题。
查看完整描述

3 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

你可以试试这个模式: filename="?([^.]+)

它假设点将文件名与扩展名分开。

解释:

filename="?-filename=字面匹配,tehn 匹配 0 或 1 个撇号"

([^.]+)- 匹配一个或多个不是点的字符(匹配所有点直到点)并将其存储在捕获组中

您想要的文件名将存储在捕获组中。

演示

EXTRA:要捕获文件扩展名,您可以使用这样的模式:filename="?([^.]+)\.([^";]+)

这里的附加内容是\.([^";]+):将点字面意义与\.. 然后它匹配一个或多个除模式";模式之外的字符,[^";]+并将其存储在第二个捕获组中。

另一个演示


查看完整回答
反对 回复 2021-11-30
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

我不确定您期望的输出。但这可能会有所帮助。正则表达式演示

(?<=filename=)[\"]?(\w.*[.].*)(?<=\w)[\"]?

或者,如果您想忽略文件扩展名:

(?<=filename=)[\"]?(\w.*)[\.]


查看完整回答
反对 回复 2021-11-30
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

以下情况如何:

(?:filename=)([^\.]*)\.(\w*)

此 REGEX 返回包含您感兴趣的不同元素的不同组。


查看完整回答
反对 回复 2021-11-30
  • 3 回答
  • 0 关注
  • 409 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信