php - 将电影名称和年份与电影文件名分开

标签 php regex preg-replace preg-match

我有一个这样的文件名

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/

相关文章:

php - preg_replace 在替换之前通过函数传递匹配

php - 升级大量的 Joomla 站点

php - 先更新或删除,然后插入

javascript - 如何提交焦点表单

php - Symfony2 上的动态 default_target_path

ruby - 如何使用 webmock 正则表达式匹配器?

php - 使用 preg_replace 修改文件链接

python - 用于 WikiMarkup 的 Python 正则表达式

javascript - 如何从链接中提取 href 属性并创建一个特定的模式?

mysql - 如何在 mysql match() against () 中使用 preg_replace() 函数