Спасибо огромное BRE за подсказку. Использовал код из примера TextFinder + добавил QTextCursor::removeSelectedText (), может кому-то тоже пригодится.
void FilterDialog::deselect(QString &row)
{
QTextDocument *doc = textBrowser->document();
QTextCursor highlightCursor(doc);
QTextCursor cursor(doc);
cursor.beginEditBlock();
QTextCharFormat plainFormat(highlightCursor.charFormat());
while(!highlightCursor.isNull() && !cursor.isNull()) {
highlightCursor = doc->find(row, highlightCursor, QTextDocument::FindWholeWords);
if (!highlightCursor.isNull()) {
highlightCursor.movePosition(QTextCursor::WordRight, QTextCursor::KeepAnchor);
highlightCursor.removeSelectedText();
}
}
cursor.endEditBlock();
}