|
Categorieën >
Overige
Regex uitdaging
Martijn – 12/12/2011 21:26 (Laatst gewijzigd op 12/12/2011 21:32)
|
|
offline
|
Crew 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) |
3 antwoorden
|
|
|
offline
|
Nieuw lid
|
|
|
|
|
offline
|
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
|
vinTage – 12/12/2011 21:37 (Laatst gewijzigd op 24/12/2011 00:11)
|
|
offline
|
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.
|
Je moet ingelogd zijn om een reactie te kunnen posten.
|
|
|