我想在Qt中获得有效的字符串工作方式,因为我是Qt环境中的新手。
所以我在做什么:
我正在加载一个文本文件,并获得每一行。每行都有以逗号分隔的文本。行模式:
Fname{limit:list:option}, Lname{limit:list:option} ... etc.
的例子:
John{0:0:0}, Lname{0:0:0}
注:限制值可为1或0,与其他值相同。
所以我想得到Fname和得到限制,列表,选项值从{}。
我想写一个代码与查找{和什么是里面,通过读取符号一个符号。
解析它的有效方法是什么?
谢谢。
下面的代码片段将为您提供第一组括号中的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 ...
}