使用特殊字符从Content-Disposition标头中提取文件名

时间:2015-07-24 08:04:10

标签: php regex header

我需要从Content-Disposition标头中提取文件名(带扩展名)。我之前使用过这个正则表达式:

nextInt

但它不适用于像这样的文件名:

  

示例 - 我是ößä.dat

所以我正在寻找一个可以处理这种文件名的正则表达式

1 个答案:

答案 0 :(得分:2)

捕获组([^\'\"]+)包含一个否定的字符类,由于您在I'm中有一个引号,因此不允许使用一个引号。

如果删除一个引用,它将起作用:

/.*filename=[\'\"]?([^\"]+)/

参见演示https://regex101.com/r/pY9mR4/1

另外,为了匹配文件名周围的引号,最好在正则表达式的末尾使用组引用:

/.*filename=([\'\"]?)([^\"]+)\1/

https://regex101.com/r/pY9mR4/2