Avatar billede a2p-dk Nybegynder
21. november 2010 - 05:10 Der er 4 kommentarer og
2 løsninger

preg_replace: match den "rigtige" parentes.

Hej som overskriften siger har jeg brug for at matche den rigtige parentes i en string.

Hvis eksempelvis min string ser sådan her ud:

$string = 'if ( Math.round(2.5) == a ) { alert( a ) }';

har jeg brug for at matche de parenteser der udgør mit if-statement således at jeg får:

( Math.round(2.5) == 3 )

ud, så jeg kan arbejde med dette.


Min nuværende regexp ser sådan ud:

/(\()(.*?)(\))/i 

hvor jeg jo får resultatet:

( Math.round(2.5)

Så mit spørgsmål er hvordan jeg kan tælle start parenteser kontra slut parenteser.

Tak!
Avatar billede tjp Mester
22. november 2010 - 00:32 #1
RegExp's kan ikke rigtigt bruges til at tælle paranteser med - til det skal der skal der bruges grammatikker. Men hvis du kun skal parse betingelsen ud af if-sætninger er /(if\s*\()(.*?)(\)\s*{)/i måske mulighed. :-)
Avatar billede coderdk Praktikant
22. november 2010 - 15:47 #2
Se evt på http://j.mp/9SMdZt
Avatar billede a2p-dk Nybegynder
24. november 2010 - 22:46 #3
tak kigger på det... :)
Avatar billede a2p-dk Nybegynder
10. januar 2011 - 18:55 #4
ok ... har ikke rigtig tid til det her lige nu... læg et svar hvis du vil. tak for hjælpen. :)
Avatar billede coderdk Praktikant
10. januar 2011 - 19:03 #5
:)
Avatar billede tjp Mester
11. januar 2011 - 10:36 #6
Og svar.. :-)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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