印地语字幕(srt 文件)解析问题

Hindi subtitle (srt file) parsing issue

iOS 中的 NSRegularExpression 无法使用下面的正则表达式解析整个印地语 srt 文件:

(\d+)\n([\d:,.]+)\s+-{2}\>\s+([\d:,.]+)\n([\s\p{P}]*?(?=\n{2,}|$))

上面的表达式在英文字幕下运行良好。在印地文字幕的情况下,函数后的结果

let matches = regex.matches(in:<SubtitleStringToParse>, options: NSRegularExpression.MatchingOptions(rawValue: 0), range: NSMakeRange(0, <SubtitleStringToParse.count>))

按预期给出具有较小值的匹配数组。如果假设实际上应该有 10 场比赛,它只显示 8 场比赛,其余 2 场比赛缺失。只要有印地语字幕,我们就可以在最后看到一些缺失的匹配项。

有什么方法可以解决这个问题,或者对于不同的语言应该如何解析字幕以获得准确的匹配?

还有其他选择吗?

试试这个正则表达式。

"((\d+)\n([\d:,.]+)\s+-{2}\>\s+[\d:,.]+\n[\s\S]*?(?=\n{2,}|$))"