我有一个这样的文件名
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
我必须将电影名称和年份分开
为了获取使用年份 perg_match 就像
$s="Divergent (2014) 720p Blu-Ray x2649 [Dual-Audio][English DD 5.1 + Hindi DD 5.1] - Mafiaking - TeamTNT ExClusive.mkv";
if (preg_match('/\b\d{4}\b/', $s, $matches)) {
$year = $matches[0];
}
echo $year;
result :- 2014 //working perfect
但我也想得到像这样的电影名称
Divergent
Birdman
Cradle 2 The Grave
我还检查了此链接
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 = "\n\nBirdman.2014.DVDSCR.X264-PLAYNOW.mkv\n\nDivergent (2014) 720p Blu-Ray x2649 [Dual-Audio][English DD 5.1 + Hindi DD 5.1] - Mafiaking - TeamTNT ExClusive.mkv\n\nCradle 2 The Grave 2003 HDTVRip 720p Dual-Audio[Eng+Hindi] ~ BRAR\n";
preg_match_all($re, $str, $matches);
关于php - 将电影名称和年份与电影文件名分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30369085/