将电影名称和年份与电影名称分开

2022-03-22 00:00:00 regex php preg-replace preg-match

我的文件名是这样的

Birdman.2014.DVDSCR.X264-PLAYNOW.mkv

分歧者(2014)720P蓝光x2649[双音频][英文DD 5.1+ 印地语DD 5.1]-制造-TeamTNT ExClusive.mkv

摇篮2坟墓2003 HDTVRip 720p双音频[英语+印地语]~BRAR

我必须将电影名称和年份分开

用于使用年份PERG_MATCH LIKE

$s="Divergent (2014) 720p Blu-Ray x2649 [Dual-Audio][English DD 5.1 + Hindi DD 5.1] - Mafiaking - TeamTNT ExClusive.mkv";
     if (preg_match('/d{4}/', $s, $matches)) {
    $year = $matches[0];
}
echo $year;

结果:-2014//工作完美

但是我也想要电影的名字,比如

分歧

鸟人

摇篮2坟墓

我还可以使用此链接进行检查

Extracting movie name and year from string were year is optional

但是什么也没有发生

我如何获得它?请帮助或提供提示以实现此目标。


解决方案

^.+?(?=s*[(.]?(d{4}))

您可以尝试此操作。电影名称将在第一个组中使用匹配和年份。请参阅演示。

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

$re = "/^.+?(?=\s*[(.]?(\d{4}))/mi"; 
$str = "

Birdman.2014.DVDSCR.X264-PLAYNOW.mkv

Divergent (2014) 720p Blu-Ray x2649 [Dual-Audio][English DD 5.1 + Hindi DD 5.1] - Mafiaking - TeamTNT ExClusive.mkv

Cradle 2 The Grave 2003 HDTVRip 720p Dual-Audio[Eng+Hindi] ~ BRAR
"; 

preg_match_all($re, $str, $matches);

相关文章