c++ - 如何根据空/空行拆分字符串?
问题描述
我正在编写一个应该解析 .srt 字幕文件的 c++ 应用程序(Qt Widgets)。文件的每个部分都由一个空行分隔,如下所示:
1
00:00:08,000 --> 00:00:11,000
[Line]
2
00:00:56,034 --> 00:00:57,492
[Line]
[Another line]
3
00:01:13,676 --> 00:01:15,420
[Line]
基本上,我想将整个文件读入 a QString
,然后用空行将其拆分为QString
数组,每个项目都包含这样的部分之一:
2
00:00:56,034 --> 00:00:57,492
[Line]
[Another line]
但是,我无法弄清楚如何做到这一点。我尝试用\r
and拆分字符串\n
,但是将所有内容拆分为单独的行,而不是空行。
这是我从 .srt 文件中获取数据的例程:
- 将文件的所有内容读取到一个
QString
(命名为 沿线的东西content
)。 - 按空行拆分
QString
,并附加到 aQStringList
(沿 行命名sections
)。 - 对于 中的每个项目
sections
,将第二行按-->
标识符拆分,并将索引0和1分别分配给名为、 和的QString
变量。startTime
endTime
- 取其余的行(第 2 行之后的所有内容都是字幕文本),并将它们附加到
QString
被调用的subtitleText
. - 将所有收集到的信息添加到
SrtSubtitle
实例中,并将其附加到QList<SrtSubtitle>
我怎样才能做到这一点?
解决方案
新行通常表示为\n
。
要在有 2 个新行之间没有任何内容的情况下拆分字符串,可以使用\n\n
分隔符。
推荐阅读
- python - 将字符串更改为逗号分隔的 numpy int 数组
- php - 你在 LARAVEL 5.4 中使用什么管理模板?
- php - 如何在视图上使用不同的按钮?
- javascript - 如何编写正则表达式以在十六进制流中搜索信用卡号
- python-3.x - 创建对象时,将用户添加到 django 模型的 manytomany 字段中的用户列表
- excel - 寻找这个 VBA 步骤通过错误的解释
- c# - 将 cshtml 中的参数解析为 cshtml.cs 中的操作
- python - 如何允许最后一个 resnet 块可训练?
- python-3.x - pymongo 是否支持 json 模式验证?
- node.js - 无法在节点中创建新项目