繁体   English   中英

Powershell多行正则表达式:字幕,如何?

[英]Powershell multiline regex: subtitles , How?

在此网站上: http : //softwarerecipes.blogspot.com/2011/01/powershell-script-for-fixing-subtitles.html 有用于修复字幕文件偏移的脚本,如下所示:

SrtFixer.ps1-路径“ Movie.srt”-偏移量“ -00:00:26.700”,但不可用。

所以我在C#中找到了一个脚本(在这里: http : //www.codeproject.com/Articles/32834/Subtitle-Synchronization-with-C

我的第一步是为以下结构编写正确的正则表达式:

2
00:00:01,775 --> 00:00:04,528
- I want you to admit what you are.
- You still refuse to see

我会尝试的:

$file = "D:\subtitles\Hannibal - 02x10 - eng.srt"

$regex ='(?m)[0-9]{1,5}\n([0-9]{2}:[0-9]{2}:[0-9]{2}),([0-9]{3}) --> ([0-9]{2}:[0-9]  {2}:[0-9]{2}),([0-9]{3})\n((.+\n)*)'

$text =get-content($file) -Raw

$text | Select-String $regex -AllMatches |
    Foreach {$_.Matches} | Foreach {$_.Value}

正则表达式似乎正确(regexhero),但没有任何匹配项。

你能帮助我吗 ?

编辑:

我的错。 正确的正则表达式

$regex ='(?m)[0-9]{1,5}\n([0-9]{2}:[0-9]{2}:[0-9]{2}),([0-9]{3})\s-->\s([0-9]{2}:[0-9]{2}:[0-9]{2}),([0-9]{3})\n((.+\n)*)'

但这不起作用。

正则表达式是不正确的,至少在与Regex Coach和您的示例文本一起检查时才如此。 这是因为([0-9]{2}:[0-9] {2}:[0-9]{2})在时间戳内需要一些奇数间距。 删除这些将为样本输入提供匹配。

话虽这么说,如何获得内容的付费版本? 那些通常具有良好的字幕。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM