/** * Attempts to parse an input /equip line. * Returns false on failure, true on success */ bool EquipReaderTxt::parsePiece(const QString &lineBuffer) { //parse using regex :D QRegExp regex( "input /equip (.+) \"(.+)\"", Qt::CaseInsensitive ); QString extraData; //store unparsed data in here int i = regex.indexIn(lineBuffer); //if our line is an equipment line if (i >= 0) { m_equip->set(regex.cap(1), regex.cap(2)); return true; } //check for version line or other stuff we don't want and eat it up. QRegExp versionLine( "^//(Equipmant Script File|Get your copy|input)", Qt::CaseInsensitive ); if (versionLine.indexIn(lineBuffer) >= 0) return true; //parse failure, return false return false; }
void CMakeTool::fetchVersionFromVersionOutput() const { Utils::SynchronousProcessResponse response = run({ "--version" }); if (response.result != Utils::SynchronousProcessResponse::Finished) return; QRegularExpression versionLine("^cmake version ((\\d+).(\\d+).(\\d+).*)$"); const QString responseText = response.stdOut(); for (const QStringRef &line : responseText.splitRef(QLatin1Char('\n'))) { QRegularExpressionMatch match = versionLine.match(line); if (!match.hasMatch()) continue; m_version.major = match.captured(2).toInt(); m_version.minor = match.captured(3).toInt(); m_version.patch = match.captured(4).toInt(); m_version.fullVersion = match.captured(1).toUtf8(); break; } }