我有13个.srt文件。他们每个人都有标题“2x--”“ - ”是插曲字幕的数量。我有一个代码可以记录关于每个.srt文件的所有信息(用于foreach),但我想将每个.srt文件设置为一个足够的电影文件(只需将.srt文件的名称更改为电影名称) 。例如:我有一个文件夹,其中是一个.srt文件和一个.mp4文件。调用.srt文件:示例 - 2x01(.srt),电影文件名为Example.S01E01(.mp4)。所以,我想让我的应用程序检测数量“2x--”(2个)之后,发现一个适当的电影(在这种情况下,这将是“E” “S01E--”后的数字),我希望你明白我的问题,我不知道我怎么可以跟踪它...越来越多的文件标题
-2
A
回答
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);
}
}
+0
谢谢你的回复,它的工作原理。但是当字幕名称不同时我该怎么办?例如,其中一个是“Example - 2x01.srt”,另一个是“Example - 2x01 - Cool.HDTV.ASAP.en.srt”,我无法通过正则表达式做到这一点。 – Alexandro
相关问题
- 1. CSS:标题越来越短
- 2. 越来越多的MS Access文件大小问题
- 3. 越来越URL和标题使用jQuery
- 4. 越来越属性作为列标题
- 5. 。网络越来越多内存问题
- 6. 越来越多的机会
- 7. 问题越来越格“右”
- 8. C#Event Handlers越来越多
- 9. Java数组越来越多
- 10. JSF1064获得越来越多
- 11. 复合C1日志文件问题 - 文件夹越来越大
- 12. Apache solr越来越多(打开的文件太多)
- 13. WebBrowser控件已越来越多状态
- 14. 事件越来越多,反复发射
- 15. 的Joomla index.php文件越来越错误
- 16. BerkeleyDB越来越胖,越来越慢
- 17. git的问题越来越先前的文件版本
- 18. 拖尾越来越多的视频文件的最后一帧
- 19. 越来越java.lang.ClassCastException:打开类文件
- 20. SCANF越来越垃圾文件
- 21. Javascript文件越来越语法错误
- 22. Mongodump越来越空白文件夹
- 23. CouchDB .view文件越来越失控?
- 24. 越来越空值,而从CSV文件
- 25. Zip文件越来越损坏
- 26. SQL日志文件越来越大
- 27. 上传docx文件越来越损坏
- 28. 文件夹名是越来越登录
- 29. 问题越来越XML节点文本中的StAX XMLStreamConstants.CHARACTERS事件
- 30. PDF合并越来越多的文件大小
这很明显,但堆栈溢出不是广泛的模糊问题要求*的想法*的地方。另请参阅[help] –
如果我想成为一名想要准备粘贴代码的leecher,那么这会更好吗? – Alexandro
当然不是,但它不会使*这个问题更多的话题。尝试一些东西,甚至正则表达式(例如),如果你不能使它工作,然后回来的代码和失败的尝试... –