首页 > 解决方案 > 如何使用正则表达式从字符串中获取文件名

问题描述

我这里有这个字符串:

"['\r\n                    File: FLO_JIUWASOKLDM_05_HetR_IUSJA_&_Cracks.mp4', <br/>, '\r\n                    Size: 48.14 MB                ']"

我有这个正则表达式\w+\.\w+

我希望正则表达式获取文件名FLO_JIUWASOKLDM_05_HetR_IUSJA_&_Cracks.mp4

但它在&符号处中断,它返回_Cracks.mp4我需要做什么来修复它?我对正则表达式非常陌生。

标签: pythonregex

解决方案


无需弄清楚文件名可能包含哪些字符(注意它通常甚至可能包含空格),您可以利用上下文:您知道它从File:和空格之后开始并一直运行到'.

因此,您可以使用

m = re.search(r"File:\s*([^']+)", s)
if m:
    print(m.group(1))

请参阅在线 Python 演示

另请参阅正则表达式演示正则表达式图

在此处输入图像描述

细节

  • File:- 文字子串
  • \s*- 0+ 个空格
  • ([^']+)- 捕获组 1 ( match_object.group(1)):除 . 之外的 1 个或多个字符'

推荐阅读