我试图在我的个人网络服务器上管理一些XBMC使用的文件,但是所有的文件(来自Yify的电影)都有如下名称
巨满集.1995-720p.yify.mp4
silver.linings.playbook.2012.1080p.x264.yify.mp4版
美国Hustle(2013)1080p brrip x264-yify.mp4
请注意,有些项用.分隔,有些项用_或空格分隔。
所以我需要做的是将文件转换成一个数组(标题、年份、质量),我只知道一些基础知识。
但这对我来说太难了。
例如

echo extract('American Hustle (2013) 1080p BrRip x264 - YIFY.mp4');

这应该会输出=
array(
    'title' => 'American Hustle',
    'year' => '2013',
    'quality' => 1080p
);

提前谢谢

最佳答案

^(.*?)\W+(\d{4})(?=[\W ]+?(\d{3,4})p)

你可以试试这个。看演示。
https://regex101.com/r/nS2lT4/29
regex启动并捕获从startnon word letter的任何内容,这些内容可以是一个或多个,并且前面有4 digits。在这之后,lookahead确保捕获\d{4}之后有non word letters可以是一个或多个,前面有4 digitsp。由于lookahead,我们捕获最后的4数字只有非单词字符,后面有4 digits p字符。

09-25 20:30