Avatar billede dehdar Nybegynder
15. februar 2010 - 15:53 Der er 5 kommentarer og
1 løsning

REGEX til validering af simpel matematisk udtryk

Hej, hvordan laver jeg et regex udtryk, som validerer for et simpelt matematisk udtryk, som kan indeholde ( ) / * - + ?
Avatar billede dehdar Nybegynder
15. februar 2010 - 16:19 #1
Det er hvad vi har fundet fremtil indtil videre. Det kunne være super fedt, hvis vi også kunne tage hånd om parantes.

([0-9]+[,]?[0-9]* (+|-|*|/))+ [0-9]+[,]?[0-9]*
Avatar billede dehdar Nybegynder
15. februar 2010 - 17:06 #2
Det er hvad vi er nået fremtil, men vi tager stadig ikke højde for paranteser.

"^(([0-9]+[,]?[0-9]*)(\\+|\\-|\\*|\\/))+([0-9]+[,]?[0-9]*)$"
Avatar billede dehdar Nybegynder
15. februar 2010 - 22:54 #3
Jeg fandt ud af det :) Efter jeg har testet mit udtryk grundigt poster jeg det.
Avatar billede tjp Mester
15. februar 2010 - 23:31 #4
Er udtryk som '2,-6,' tilladt? Og hvad med mellemstillede mellemrum som i '2 * 3'? Hvad parenteser angår er det kun muligt at angive et vist antal balancerede parenteser m RegExp..
Avatar billede dehdar Nybegynder
15. februar 2010 - 23:38 #5
Nej, hvis man vælger at indkludere et komma, så skal der være mindst et tal før og efter kommaet. Mellemrum er ikke tilladet, men inden jeg validerer et udtryk, så trimmer jeg det.

Hvad angår parenteser, så er jeg lige ved at teste mit udtryk, da det er blevet ret stort og lidt uoverskueligt. Jeg har dog delt det op for at gøre det nemmere.
Avatar billede dehdar Nybegynder
15. februar 2010 - 23:58 #6
Jeg kan putte parenteser rundt om alle tal og rundt om alle udtryk, men ved udtryk kan jeg kun putte dem ind i parenteser i et niveau.

dvs (4+2)*(2+3)  virker fint, men (4+2*(2+3)) virker ikke.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester