2017-02-26 2 views
0

Wie kann ich die erste Saite ("firstStr" für die Beispiele unten) erhalten mit QRegularExpressionerste Saite mit QRegularExpression

QString readCmdOutput = ""; 
/* readCmdOutput = "firstStr\secondStr"; or 
readCmdOutput = "firstStr 
secondStr 
" 
*/ 
readCmdOutput = QString::fromLocal8Bit(myProcess->readAllStandardOutput()); 

QRegularExpression re("REGEXPRESSION"); 
QRegularExpressionMatch match = re.match(readCmdOutput); 
if (match.hasMatch()) { 
    QString matched2 = match2.captured(0); // has to contain "firstStr" 
} 

Antwort

1

Die richtige regulärer Ausdruck ist:

QRegularExpression re("[^\\n\\\\]*"); 

Dieser reguläre Ausdruck jede Sequenz entspricht von Zeichen, die keinen Zeilenumbruch (\ n) oder einen umgekehrten Schrägstrich (\) enthalten. Beachten Sie, dass Sie alle Backslashes vermeiden müssen. Weitere Informationen finden Sie unter QRegularExpression.