Hallo allen,

Een kort vraagje, ik wil eigenlijk kijken of bepaalde criteria gematched wordt, maar als ze niet gematched worden, er een regex overheen gaat die daar dus voor zorgt. Ik wou het in een functie wegstoppen maar loop momenteel nog tegen de problemen aan dat ik de regex niet eens op orde krijg.

Het gaat om iets simpels als:

([A-Za-z0-9\-\_]+)

maar deze moet dus geinvert worden, dus alles wat niet hier mee matched, moet gestript worden met een ''. Iemand een snelle oplossing hiervoor? Ik ben namelijk erg slecht in REGEX :)

Alvast bedankt voor jullie hulp.
Bedoel je:

if (!preg_match()) {
// doe iets
}
Plaats een ^ direct na [.
Wouter J op 18/03/2012 19:11:12

Plaats een ^ direct na [.

dat kan ook :)
aha :D zo makkelijk gaat het dus... Kijk, ik ben een drama queen als het op REGEX aan komt, gewone dingen matchen lukt wel, maar wanneer het net even anders moet ben ik het kwijt.

Hartstikke bedankt beide
Let wel op dat die negatie alleen werkt bij character sets (of hoe ze ook mogen heten) en niet bij combinaties van chars.
^appel om appels niet te matchen werkt dus niet.
Je zal hiervoor negative lookahead of behind moeten gebruikten.
Akkoord, maar ik ga geen directe string checks doen, die zijn variabel, ik controleer alleen character sets, \d, \w en \s of combinaties zoals in de openingspost. Maar bedankt voor de heads up, wat is een negatieve lookahead precies?

Reageren