QT程序的前后断言怎么没有效果呢?
源字符串是 :当前程序【OEP】正则表达式是:(?<=【).*(?=】)
#include <QRegularExpression>
void GotoDialog::on_comboBox_currentIndexChanged(const QString &arg1)
{
// ui->editExpression->setText(ui->comboBox->currentText()); 设置成功!是它,就是它!
QRegularExpression re("(?<=【).*(?=】));
QRegularExpressionMatch match = re.match(ui->comboBox->currentText());
if (match.hasMatch()) {
QString matched = match.captured(1);
// QMessageBox::warning(this, tr("Error!"), matched); 垃圾代码仅供测试
ui->editExpression->setText(matched);
}
} 你变了,抛弃Delphi了?Qt现在只能玩一下上位机,多平台就算了吧,太臃肿,坑太多!C++语言垃圾,太古老了,就算是做系统底层开发将来也是rust之类的语言,Qt Quick仍然继承了Qt的臃肿和无数的天坑。
看风流IDE,还是要看我大Delphi !!!Delphi神教,千秋万代,一统江湖! hyltlll 发表于 2022-3-4 11:55
你变了,抛弃Delphi了?Qt现在只能玩一下上位机,多平台就算了吧,太臃肿,坑太多!C++语言垃圾,太古老了 ...
@hyltlll
只是为了自己解决x64dbg的某些不好用的地方{:301_971:} 字符串编码问题吧, 【】这两个符号是中文字符 #include <QRegularExpression>
#include <iostream>
int main()
{
QRegularExpression re(QString::fromLocal8Bit("(?<=【).*(?=】)"));
QRegularExpressionMatch match = re.match(QString::fromLocal8Bit("当前程序【OEP】"));
if (match.hasMatch())
{
QString matched = match.captured(0);
std::cout << qPrintable(matched);
}
else
{
std::cout << "no match";
}
return 0;
}
页:
[1]