QRegExp::capturedTexts()
リストの最初の要素は、一致した文字列全体です。
The docは言う:
QStringList QRegExp::capturedTexts() const
が撮影したテキスト文字列のリストを返します。
リストの最初の文字列は、一致する文字列全体です。各 後続のリスト要素には、正規表現の(キャプチャ) 部分式に一致する文字列が含まれています。
もう一つの例:
QString s = "abcd123";
QRegExp re("(ab).*(12)");
qDebug() << "indexIn:" << re.indexIn(s);
qDebug() << "captureCount:" << re.captureCount();
qDebug() << "capturedTexts:" << re.capturedTexts();
出力は次のようになります。
indexIn: 0
captureCount: 2
capturedTexts: ("abcd12", "ab", "12")
あなたはすべての一致を取得したい場合は、あなたがこれを使用することができます。
QString strExp="Sum(2+3)-Sum(5+3)";
QRegExp regexp("(Sum\\([^)]*\\))");
regexp.indexIn(strExp);
QStringList list;
int pos = 0;
while ((pos = regexp.indexIn(strExp, pos)) != -1) {
list << regexp.cap(1);
pos += regexp.matchedLength();
}
qDebug() << "all matches:" << list;
出力:
all matches: ("Sum(2+3)", "Sum(5+3)")
in My excble Qtでそのタイプを抽出する方法 –
*その式のタイプ –
私はあなたの質問を理解していません。 – hank