Avatar billede montago Praktikant
30. september 2006 - 21:40 Der er 10 kommentarer og
1 løsning

Find matematiske stykker i tekst

Lad os sige vi har en tekst:

"Hej klaus, jeg tjener 95kr i timen og har haft 35 timer i denne uge, jeg fik tillæg 2 timer om dagen på 20 kr, 5 dage: ((95*35)+(2*20*5))  :-)"

Det er så meningen at et Regulært udtryk finder regnestykket og ikke hvert af de løse tal eller smileyen som er i teksten

indtil videre, har jeg overvejet en kombination af tal: \d eller [0-9] samt operatorer: [/*\-+()]

Jeg kan ikke få lavet et reg. udtryk som fanger regnestykket alene - pt bruges: /[0-9/*\-+()]+/gi

men dette holder ikke

min ide vill være noget lign: /[[0-9]+[/*\-+()][0-9]+]*/gi <-- virker ikke efter hensigten

please help!
Avatar billede montago Praktikant
30. september 2006 - 21:42 #1
skulle være: /[[0-9]*[/*\-+()][0-9]*]*/gi i stedet for det jeg skrev... virker som sagt ikke
Avatar billede erikjacobsen Ekspert
30. september 2006 - 21:42 #2
Kan du ikke bare pakke regneudtrykket ind i et eller andet speciel:

  Bank under border [[7+9+13]] 3 gange.
Avatar billede montago Praktikant
30. september 2006 - 21:49 #3
een løsning er at brugeren selv definere udregningen med start-slut parantes... men jeg synes det er sjovere blot at skrive det...

skal bruges til et MSN plugin...
Avatar billede erikjacobsen Ekspert
30. september 2006 - 21:52 #4
Hvad er det så mener er udtryk?
  7+9
  (7*9)
  (7 - 9)
  7,3+9,0
  3.0+9
Avatar billede montago Praktikant
30. september 2006 - 21:53 #5
altså... reglen er at regnestykket skrives uden mellemrum, ellers er det umuligt at holde styr på

så (7 - 9) duer ikke
Avatar billede montago Praktikant
30. september 2006 - 22:16 #6
([\d()+/*\-\.,]{3,}) <-- vil fange "store" udtryk... men fanger også store tal, som fx 350

hvad kan gøres ved dette ?
Avatar billede erikjacobsen Ekspert
30. september 2006 - 22:51 #7
Der sker vel ikke noget ved at du fanger 350. Hvis du udregner det, giver det 350. Og elelrs så kan du jo efterfølgende yderligere kontrollere om det bare er et tal.
Avatar billede montago Praktikant
30. september 2006 - 22:58 #8
tjoo tjaa... du har ret... hvis catch == eval(catch) så skal der ikke ske noget...

heyyy smart :D
Avatar billede erikjacobsen Ekspert
30. september 2006 - 23:27 #9
Pas på med eval - for du fanger også ulovlige udtryk, fx:  7+++++++++++++++++++++++8
Avatar billede montago Praktikant
30. september 2006 - 23:43 #10
jojo... men så fucker eval... det sker der ikke noget ved ;)
Avatar billede montago Praktikant
10. februar 2007 - 23:47 #11
41561
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