我试图在我的个人网络服务器上管理一些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启动并捕获从
start
到non word letter
的任何内容,这些内容可以是一个或多个,并且前面有4 digits
。在这之后,lookahead确保捕获\d{4}
之后有non word letters
可以是一个或多个,前面有4 digits
的p
。由于lookahead,我们捕获最后的4
数字只有非单词字符,后面有4 digits p
字符。