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