[Qt] QRegExpValidator: Eingabe eines Terms
-
Hallo,
ich benutze Qt in der Version 4.3.1 und versuche einen simplen Rechner zu entwerfen, der als Eingabe in einem QLineEdit einen mathematischen Term mit den vier Grundrechenoperationen erwartet. Dabei soll mindestens eine Operation ausgeführt werden, d.h. bspw. "1+1". Als Eingabemaske bediene ich mich eines RegExps, das aber leider nicht das macht, was ich will.
RegExp:
[0-9]+[+|\-|*|/]{1}[0-9]+[[+|\-|*|/]{1}[0-9]+]*
Das RegExp soll eine Zeichenkette der Art "1+1-1/1*1" matchen, leider ist aber nach "1+1-1" Schluss.
Meine Vermutung, dass es mit einer beschränkten Aufnahmefähigkeit des LineEdits zu tun hat, habe ich verworfen, da auch mit bspw. {0,3} anstatt des * nicht alles gematcht wird.
Was mache ich falsch? Muss ich irgendwelche Besonderheiten bei den Qt-RegExps beachten?
Vielen Dank für alle Anworten schon jetzt
-
Morgen,
"[0-9]+[-+/*][0-9]+(?:[-+/*][0-9]+)*"
oder auch
"\\d+[-+/*]\\d+(?:[-+/*]\\d+)*"
Wenn Du auch Klammern unterstützen willst wird das M.E. mit einem QRegExp nicht mehr gehen.
cu, Bernd
-
Danke. Werde das allerdings erst irgendwann in näherer Zukunft ausprobieren, da ich beschlossen habe, meine C++-Kenntnisse noch ein wenig zu vertiefen, bevor ich in die grafische Programmierung einsteige.