Hallo,
ich habe einen String, der mittels Regex auf folgendes Muster geprüft werden soll:
([\d])(\s+[/*+-]\s+[\d])+
Das Ganze prüfe ich mittels "regex.IsMatch(benutzerEingabe)"
2 + 2 => OK
2 + 2 * 2 => OK
2 + 2+ 2 => NICHT OK => Abfrage fängt den Fehler nicht ab, klar, denn "IsMatch: Gibt an, ob der reguläre Ausdruck eine Übereinstimmung in der Eingabezeichenfolge findet.". Wie kann ich es denn prüfen, ob ALLES passt?
Ich hoffe, ich konnte mich einigermaßen erklären. Vielen Dank schon mal im Voraus.
Deine Regex haut nicht hin.
Form so um:
Ziffer, beliebig oft; Gruppe aus: (
mindestens ein Leerzeichen; eines von [/*+-];mindestens ein Leerzeichen; Ziffer, beliebig oft
), mindestens einmal
Edit: als BNF:
Term := Zahl, Subterm
Zahl := Ziffer, [Zahl]
Subterm := Operator, Zahl, [Subterm]
Operator := / | * | + | -
LaTino
"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)
Hallo dasHund1982,
unabhängig von dem Einwand von Latino, hier noch die Antwort auf die eigentliche Frage. Du kannst mit ^ und $ erzwingen, dass die Suche am Anfang des Strings(*) beginnt bzw. endet.
(*) Bzw. der Zeile. Umschaltbar per RegexOptions.Multiline.
herbivore
Stimmt, ich war davon ausgegangen, dass er prüfen will, ob des sich um einen korrekten math. Term handelt...wollte er ja gar nicht. Also wenn 2 + 2 + 2 ungültig ist, dann mit $ und ^arbeiten. Räum aber mal die überflüssigen Zeichen aus der Regex 😉 .
"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)
Hey,
ich prüfe eure Vorschläge heute Abend. Die Sache mit dem "^" habe ich bereits versucht, leider hat der Online-Regex-Prüfer (https://regexr.com/) das irgendwie nicht gefressen, weshalb ich es weggelassen habe.
Vielen Dank für die Antworten. Ich bin gespannt.
Hallo dasHund1982,
du kannst es mal mit dem On-the-fly Regex-Tester: Regex-Lab probieren. Damit hatte ich das geschilderte Problem jedenfalls noch nicht.
herbivore