私は QString がこれを許可することを望んでいました:
QString myString("School is LameCoolLame and LameRadLame");
myString.replace(QRegularExpression("Lame(.+?)Lame"),"\1");
出発
"School is Cool and Rad"
私がドキュメントで見たものとは異なり、これを行うことははるかに複雑であり、(ドキュメントから) 行う必要があります。
QRegularExpression re("\\d\\d \\w+");
QRegularExpressionMatch match = re.match("abc123 def");
if (match.hasMatch()) {
QString matched = match.captured(0); // matched == "23 def"
// ...
}
または私の場合、次のようなものです:
QString myString("School is LameCoolLame and LameRadLame");
QRegularExpression re("Lame(.+?)Lame");
QRegularExpressionMatch match = re.match(myString);
if (match.hasMatch()) {
for (int i = 0; i < myString.count(re); i++) {
QString newString(match.captured(i));
myString.replace(myString.indexOf(re),re.pattern().size, match.captured(i));
}
}
そして、それはうまくいかないようです(私は実際にあきらめました). もっと簡単で便利な方法があるはずです。シンプルさとコードの読みやすさのために、これを達成するためにコード行数が最も少ない方法を知りたいです。
ありがとう。