从moviefile名称中删除电影名称和年份

时间:2015-05-21 09:01:15

标签: php regex preg-replace preg-match

我有一个像这样的文件名

  

Birdman.2014.DVDSCR.X264-PLAYNOW.mkv

     

Divergent(2014)720p Blu-Ray x2649 [双音频] [英文DD 5.1 +   印地语DD 5.1] - Mafiaking - TeamTNT ExClusive.mkv

     

Cradle 2 The Grave 2003 HDTVRip 720p双音频[英语+印地语] ~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;
  

结果: - 2014 //完美的工作

但我也希望获得像

这样的电影名称
  

发散

     

鸟人

     

Cradle 2 The Grave

我也查看了这个链接

Extracting movie name and year from string were year is optional

但没有任何事情发生

我是怎么做到的?请提供帮助或提供提示。

1 个答案:

答案 0 :(得分:3)

def doWork(i: Int): Try[Int] = {
  i match {
    case 1 => Success(10)
    case 2 => Failure(new IllegalArgumentException("computer says no"))
    case 3 => Success(30)
  }
}

traverse(Seq(1,2,3))(doWork)
res0: scala.util.Try[Seq[Int]] = Failure(java.lang.IllegalArgumentException: computer says no)

traverse(Seq(1,3))(doWork)
scala.util.Try[Seq[Int]] = Success(List(10, 30))

你可以尝试这个。电影名称将在第一组中匹配和年份。参见演示。

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

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