QLineEdit edit; edit.setText("lox 123 4,5 lox100500 -34.66"); QSet<QString> numbersList; QSet<QString> elementsList; QRegularExpressionMatchIterator i = QRegularExpression("(?<!\\S)([-]?\\d+[.,]?\\d*)(?!\\S)").globalMatch(edit.text()); while (i.hasNext()) numbersList.insert(i.next().captured(1)); i = QRegularExpression("(\\S+)").globalMatch(edit.text()); while (i.hasNext()) elementsList.insert(i.next().captured(1)); qDebug() << "bad set" << elementsList.subtract(numbersList);