我有一个像这样的文件名
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
但没有任何事情发生
我是怎么做到的?请提供帮助或提供提示。
答案 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}))