login  Naam:   Wachtwoord: 
Registreer je!
 Forum

vraagje over een reguliere expressie

Offline Antiz - 15/07/2010 05:09
Avatar van AntizNieuw lid Ik wil controleren dat een opeenvolging van 2 karakters (bv. ab) niet voorkomt in een deel
van mijnregex.

indien het om 1 karakter gaat zou ik dan [^a]* gebruiken,
ik zoek dus eigelijk iets zoals [^(ab)]*

mijn volledig regex zou eruit bestaan dat ab exact 1 keer moet voorkomen
en dus iets zoals ^[^ab]*ab[^ab]*$


is hier een eenvoudige oplossing voor?
ik denk dat ik er met een lookahead ook zou moeten geraken maar ik zie wrs iets over het hoofd

alvast bedankt,


David

3 antwoorden

Gesponsorde links
Offline Stijn - 15/07/2010 08:28
Avatar van Stijn PHP expert Je moet met backrefercing werken. Jou oplossing zal niet werken.

(\w)[^\1] -> betekent iedere letter mag voorkomen en het volgende letter mag niet gelijk zijn aan de voorgaande letter.
Offline Antiz - 15/07/2010 13:01
Avatar van Antiz Nieuw lid ik gebruik nu ([^a]|a(?!b)) wat juist lijkt te werken
ik snap niet goed hoe je hetzelfde doet met backreferencing?
Offline Stijn - 17/07/2010 16:38
Avatar van Stijn PHP expert Die backreferencing in mijn oplossing verwijst naar het vorige letter. Door die ^ ervoor te plaatsen, zeg ik dat het niet het voorgaande teken mag zijn het volgende teken.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.163s