How to filter(startWith()) ?
-
wrote on 12 Jun 2018, 03:44 last edited by
Filter lines startWith "#include";
QStringList list = textEdit->toPlainText().split("\n"); QStringList result; result = list.filter(list.at(i).startWith("#include"));
-
wrote on 12 Jun 2018, 04:12 last edited by Prince_0912 6 Dec 2018, 04:15
-
Filter lines startWith "#include";
QStringList list = textEdit->toPlainText().split("\n"); QStringList result; result = list.filter(list.at(i).startWith("#include"));
wrote on 12 Jun 2018, 04:25 last edited by KillerSmath 6 Dec 2018, 04:27@sonichy said in How to filter(startWith()) ?:
Filter lines startWith "#include";
QStringList list = textEdit->toPlainText().split("\n"); QStringList result; result = list.filter(list.at(i).startWith("#include"));
You can use a regular expression to find all strings starting with #include
#include <QStringList> #include <QRegExp> ... QStringList result; result = list.filter(QRegExp("^#include.*")); ...
-
Filter lines startWith "#include";
QStringList list = textEdit->toPlainText().split("\n"); QStringList result; result = list.filter(list.at(i).startWith("#include"));
@sonichy Use a regular expression:
result = list.filter(QRegularExpression("^#include.*"));
-
Hi,
Please use QRegularExpression, QRegExp is to be considered deprecated with Qt 5.
-
wrote on 12 Jun 2018, 09:12 last edited by VRonin 6 Dec 2018, 09:14
Or if you are a parallel hipster:
Using Qt:
QStringList list = textEdit->toPlainText().split("\n"); QStringList result = QtConcurrent::blockingFiltered(list , [](const QString& val)->bool{return val.startWith(QLatin1String("#include"));});
using C++17:
QStringList list = textEdit->toPlainText().split("\n"); QStringList result; std::copy_if(std::execution::par,list.cbegin(), list.cend(), std::back_inserter(result), [](const QString& val)->bool{return val.startWith(QLatin1String("#include"));});
5/6