带负数的QScriptEngine,pe:5 * -2

时间:2012-11-03 16:19:30

标签: qt qregexp

我正在尝试运行一个脚本,该脚本仅评估具有add,subs,mults和div的表达式,但可以使用负数。这个负数来自这样的指令:

set 1, 5 * D[5]

这意味着您必须存储5 * [whatever it's in a variable]的结果。如果此变量包含负数,假设为-2,则表达式为5*-2,此表达式由QScriptEngine计算,结果为0(错误)。我需要将这样的表达式解析为5*(-2)。在PERL中,执行此操作的RegExp将是:

$expresion =~ s/\[\\*\\+\\-\\/](\\-\d+)/($1)/g;

我如何在Qt中执行此操作?

1 个答案:

答案 0 :(得分:0)

QString s = "...";
s.replace(QRegExp("[\\*\\+\\-\\/](\\-\\d+)"), "\\1");

请参阅http://doc.qt.io/qt-4.8/qstring.html#replace-16