login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Regex uitdaging

Offline Martijn - 12/12/2011 21:26 (laatste wijziging 12/12/2011 21:32)
Avatar van MartijnCrew PHP Allereerst, ik heb dit niet nodig! Nog niet in ieder geval 
-------------------------------------
De volgende situatie doet zich voor:

"[quote] tekst [/qoute]"

De regex hiervoor zou zijn /[quote](.*?)[/quote]/ (!zonder escapen voor leesbaarheid)

Die is te doen. Nu de volgende:
"[quote] tekst [quote]tekst2[/quote] tekst [/qoute]"
Oftewel, een quote in een quote.

De regex hiervoor zou zijn /[quote](.*)[/quote]/ (!zonder escapen voor leesbaarheid)
-Omdat deze nu greedy is (geen vraagteken) zal ie de steeds de eerste en de laatste nemen, en krijg je een quote in quote.

Dan, de lastige:
"[quote] tekst [quote]tekst2[/quote] tekst [/qoute]
Tekst 3!
[quote]tekst4[/quote]
"

Wat is daar de regex voor? Punten voor leesbaarheid en flexibiliteit. Kan natuurlijk dat tekst1/2 en tekst4 andersom staan, of dat tekst4 een tekst5 in zich heeft

Ik heb er al even nagedacht, maar kwam er zo snel niet op en vond het een leuk puzzeltje om te delen.
PS: Een quote in een quote mag je _niet_ vervangen door wat anders. Ik wil dus echt een quote in een quote zien, ongeacht het aantal! (Ja, in praktijk een beetje raar, maar toch)

6 antwoorden

Gesponsorde links
Offline vinTage - 12/12/2011 21:30
Avatar van vinTage Nieuw lid http://www.sitemasters.be/forum/1/37550
Offline Martijn - 12/12/2011 21:33
Avatar van Martijn Crew PHP maar die heeft alleen een quote in een quote in een quote. Die is niet zo moeilijk, het probleem zit m in de quote in quote, dan tekst buiten quotes, en dan weer quotes. Tenzij ik dat verkeerd zag, maar die zag ik even niet in het topic dat je gaf
Offline vinTage - 12/12/2011 21:37 (laatste wijziging 24/12/2011 00:11)
Avatar van vinTage Nieuw lid bekijk het live voorbeeld, die geeft alles wat je selecteert 

edit: ik heb die ooit voor sitemasters geschreven, maar met de snelheid waarmee hier hapklare code wordt geïmplementeerd.....misschien staat hij nog op de test versie/svn

edit
(na een lange tijd) maar ik was benieuwd of je er al uit was, en aangezien mijn oplossing niet juist was, was ik benieuwd naar een betere oplossing.
Offline Martijn - 11/07/2012 10:42 (laatste wijziging 11/07/2012 10:42)
Avatar van Martijn Crew PHP Ik zie nu (na een lange tijd) je edit, nee ik heb nog geen werkende oplossing. Wat een optie zou kunnen zijn, is dat je vanaf achteren de eerste [quote] zoekt, en dan vanaf daar de eerste [/quote], en repeat. Indien de code goed is zou dat moeten werken. Geloof ik 
Offline Stijn - 17/07/2012 23:25 (laatste wijziging 17/07/2012 23:25)
Avatar van Stijn PHP expert "[quote ] tekst [quote ]tekst2[/quote ] tekst [/qoute ]
Tekst 3!
[quote ]tekst4[/quote ]"

Dit is een quote in een quote, dan "tekst3!" en dan nog een quote eronder? Indien ja, dan heb ik wel nog ergens een regex liggen. Welke programmeertaal?
Offline Martijn - 18/07/2012 09:52
Avatar van Martijn Crew PHP Ik heb het niet nodig hoor, was meer gewoon om mernsen er over na te laten denken. Maar je hebt gelijk, dat is wel de bedoeling. Maar tekst4 en 1&2 zouden ook andersom kunnen, of een 5 in een 5 ofzo, helemaal random
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.267s