gpt4 book ai didi

java - 用于在 android 中读取 SRT 文件的正则表达式

转载 作者:行者123 更新时间:2023-12-01 14:18:05 26 4
gpt4 key购买 nike

我想从 android 应用程序中的字幕文件(.srt)中获取开始时间、结束时间和字幕。我正在使用正则表达式来提取内容。我将 .srt 文件放在 assets 文件夹中。但是该模式没有从文件中提取任何内容。它返回空值。 regEx 中是否需要进行任何修改。下面给出的正则表达式代码和文件内容,

代码::

protected static final String nl = "\\\n";
protected static final String sp = "[ \\t]*";
Pattern pattern =Pattern.compile("(\\d+)" + sp + nl
+ "(\\d{1,2}):(\\d\\d):(\\d\\d),(\\d\\d\\d)" + sp
+ "-->" + sp + "(\\d\\d):(\\d\\d):(\\d\\d),(\\d\\d\\d)" + sp
+ "(X1:\\d.*?)??" + nl + "((.|\\\\n)*?)" + nl + nl);

文件内容::
2
00:00:02,373 --> 00:00:03,999
Ohh wooaah

3
00:00:06,190 --> 00:00:07,798
Ohh wooaah


4
00:00:09,743 --> 00:00:12,966
Ohh wooaah

最佳答案

下次,至少提供您尝试过的内容,顺便说一句,这里有一个非常好的正则表达式教程:http://www.regular-expressions.info/

String lineNumberPattern = "(\\d+\\s)";
String timeStampPattern = "([\\d:,]+)";
String contentPattern = "(.*\s.*)";

// the complete regexp : "(\\d+\\s)([\\d:,]+)( --> )([\\d:,]+)(\\s)(.*\s.*)"

String sampleLine = "2\n00:00:02,373 --> 00:00:03,999\nOhh wooaah\n";
Matcher matcher = Pattern.compile(lineNumberPattern + timeStampPattern + "( --> )" + timeStampPattern + "(\\s)" + contentPattern).matcher(sampleLine);

while(matcher.find()) {
String start = matcher.group(2);
String end = matcher.group(4);
String content = matcher.group(6);
// store those information somewhere
}

关于java - 用于在 android 中读取 SRT 文件的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32415273/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com