我需要从 Content-Disposition header 中提取文件名(带扩展名)。我以前用过这个正则表达式:
/.*filename=[\'\"]?([^\'\"]+)/
但它不适用于像这样的文件名:
EXAMPLE- I'm ößä.dat
所以我正在寻找一个可以处理这样的文件名的正则表达式
最佳答案
捕获组 ([^\'\"]+)
包含一个否定字符类,该字符类不允许使用单引号,因为 I'm
中有一个引号>.
如果您删除一个引号,它将起作用:
/.*filename=[\'\"]?([^\"]+)/
查看演示 https://regex101.com/r/pY9mR4/1
此外,为了匹配文件名周围的引号,最好在正则表达式末尾使用组引用:
/.*filename=([\'\"]?)([^\"]+)\1/
关于php - 从 Content-Disposition header 中提取带有特殊字符的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31605237/