gpt4 book ai didi

javascript - 让这个正则表达式在 Javascript 中工作?

转载 作者:行者123 更新时间:2023-11-28 01:02:31 25 4
gpt4 key购买 nike

我需要使用正则表达式以数组形式获取 SRT 文件的数据。

这是迄今为止我的代码:

JavaScript:

function readSrt() {
var srtUrl = 'assets/media/subtitles.srt';

$.get(srtUrl, function(data) {
console.log("SRT:", data); // it reads ok

var regexp = /(.*)\n(.*),\d\d\d --> (.*)\n(.*)/g; // this regex doesn't work

console.log("SUBS:", data.match(regexp)); // outputs null
});
}

字幕.srt:

0
00:00:00,000 --> 00:00:01,000
Instructor…All right, let's start off

1
00:00:01,000 --> 00:00:04,000
here. We were, I think, wrapping up kind

...

14
00:00:40,000 --> 00:00:42,000
mound, basically.

15
00:00:42,000 --> 00:00:44,000
If you go to Colossae today, none of it

...

需要获取:

1.  0
2. 00:00:00
3. 00:00:01,000
4. Instructor…All right, let's start off

regex101.com 中进行了多次尝试但似乎只适用于 PHP,但不适用于 javascript。

我做错了什么以及如何解决它?

最佳答案

正则表达式中可能出错的一件事是 .* 是贪婪的。它将从第一个标题开始匹配,仅在最后一个标题结束匹配。尝试用它的惰性替代方案替换它,以便每次匹配尽可能少。

/(.*?)\n(.*?),\d\d\d --> (.*?)\n(.*?)\n/

关于javascript - 让这个正则表达式在 Javascript 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25452261/

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