我想在Qt中使用Strings的有效方法。因为我是Qt环境中的新手。
所以我在做什么:
我正在加载一个文本文件,并获取每一行。 每行都有逗号分隔的文本。 行模式:
Fname{limit:list:option}, Lname{limit:list:option} ... etc.
示例:
John{0:0:0}, Lname{0:0:0}
注意:限制可以是1或0,与其他限制相同。
所以我想从{}获取Fname并获取限制,列表,选项值。
我正在考虑使用find {编写一个代码,并通过逐个符号读取内容。
解析它的有效方法是什么?
感谢。
答案 0 :(得分:1)
以下代码段将为您提供第一组括号中的Fname和limit,list,option。如果您对Lname集感兴趣,也可以轻松更新。
QFile file("input.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
qDebug() << "Failed to open input file.";
QRegularExpression re("(?<name>\\w+)\\{(?<limit>[0-1]):(?<list>[0-1]):(?<option>[0-1])}");
while (!file.atEnd())
{
QString line = file.readLine();
QRegularExpressionMatch match = re.match(line);
QString name = match.captured("name");
int limit = match.captured("limit").toInt();
int list = match.captured("list").toInt();
int option = match.captured("option").toInt();
// Do something with values ...
}