-2

我在拆分一个 vtt 文件时遇到了麻烦,该文件被分块为一个字符串。

我有这个字符串:“3 00:00:09.023 --> 00:00:11.953 只有看着她坐着,双腿张开,4 00:00:11.953 --> 00:00:13.593 你才能知道她是麻烦制造者。”

我想变成这样

3

00:00:09.023 --> 00:00:11.953

只是看着她张开双腿坐着,

4

00:00:11.953 --> 00:00:13.593

你可以说她是个麻烦制造者。

每个数字(3,4 ...等)作为新行。我有几千个数字要拆分

感谢任何 1 可以提供帮助!谢谢!

4

2 回答 2

0

如果你的字符串结构是固定的,你可以使用这个:

var yourString = "3 00:00:09.023 --> 00:00:11.953 Only by looking at her sitting with her legs spread widely, 4 00:00:11.953 --> 00:00:13.593 you can tell she's a troublemaker.";
var newString = yourString.replace(/\d+\s\d{2}/g,'\n$&');

如果此代码未涵盖所有情况,您应该提供更多详细信息。

于 2017-02-01T15:12:22.360 回答
0

您可以使用正向前瞻来匹配第一次 (00:00:09.023) 后跟的数字和空格字符,并将其替换为换行符 ( \n) 和匹配的数字。

var subtitleLines = str.replace(/(\d+\s(?=\d{2}:\d{2}:\d{2}))/)/g, "\n$1")

为了更安全,如果某些字符串碰巧包含现在匹配的子字符串,您可以包含更多的时间部分,例如

/(\d+\s(?=\d{2}:\d{2}:\d{2}\.\d{3}\s-->))/
于 2017-02-01T15:12:36.907 回答