替换特定行的文本

时间:2014-09-25 00:25:49

标签: qt

我试图替换特定行的文本,但没有成功。 (我经常搜索,但我什么都没找到)

类似的东西:

hello
my
friend!

将第2行替换为某些文字:

hello
AEEEHO NEW LINE TEXT
friend!

我创建了一个QStringList并尝试逐行读取文本,并通过仅更改该行添加到此列表,但没有成功。

        int line = 1; // to change the second line
        QString newline = "my new text";
        QStringList temp;

        int i = 0;
        foreach(QString curlineSTR, internalCode.split('\n'))
        {
            if(line == i)
                temp << newline;
            else
                temp << curlineSTR;
            i++;
        }

        internalCode = "";
        foreach(QString txt, temp)
            internalCode.append(QString("%1\n").arg(txt));

1 个答案:

答案 0 :(得分:2)

我相信您正在寻找QRegExp来处理换行并执行以下操作:

QString internalcode = "hello\nmy\nfriend!";

int line = 1; // to change the second line
QString newline = "another text";

// Split by newline command
QStringList temp = internalcode.split(QRegExp("\n|\r\n|\r"));
internalcode.clear();

for (int i = 0; i < temp.size(); i++)
{
    if (line == i)
        internalcode.append(QString("%0\n").arg(newline));
    else
        internalcode.append(QString("%0\n").arg(temp.at(i)));
}

//Use this to remove the last newline command
internalcode = internalcode.trimmed();

qDebug() << internalcode;

输出:

"hello
another text
friend!"