越来越多的文件标题

时间:2015-08-22 14:42:13

标签: c# foreach

我有13个.srt文件。每个人都有标题“2x - ”“ - ”是剧集副标题的数量。我有一个代码,可以获取有关每个.srt文件(使用foreach)的所有信息,但我想将每个.srt文件设置为适当的电影文件(只需将.srt文件的名称更改为电影名称) 。例如:我有一个文件夹,其中包含一个.srt文件和一个.mp4文件。调用.srt文件:示例 - 2x01(.srt),电影文件名为Example.S01E01(.mp4)。所以我想让我的应用程序检测到数字“2x - ”(2x之后)并找到一个足够的电影(在这种情况下它将是“E”之后的数字“S01E-- “)我希望你理解我的问题,我不知道如何追踪它......

This is how I see it. [IMAGE]

1 个答案:

答案 0 :(得分:1)

你可能正在谈论正则表达式,因为你的副标题文件名确实有一个像"<title> - 2X<episode>.srt"这样的常见模式,你想把它转换成另一种模式,"<title>.S01E<episode>.mp4"

下面的代码可以解决问题。 title组包含任何字符,直到找到序列- 2x,然后它将episode组作为一个或多个数字。

foreach (var fullPath in Directory.GetFiles("*.srt"))
{
    // "Example - 2x01.srt"
    var subtitle = Path.GetFileName(fullPath);
    var match = Regex.Match(subtitle, @"(?<title>.*?) - 2x(?<episode>\d+)\.");
    if (match.Success)
    {
        // "Example.S01E01.mp4"
        var movie = String.Format("{0}.S01E{1}.mp4", 
            match.Groups["title"].Value,
            match.Groups["episode"].Value);
        Console.WriteLine(movie);
    }
}