Modulelessen (3/4)
Ontkenning: `[^...]`
Plaats een dakje ^ als eerste teken tussen haakjes
keert de klasse om: het komt overeen met elk karakter behalve de vermelde karakters.
Pattern: [^aeiou]
Sample: ciao mondo
^ ^^ ^[^aeiou] komt overeen met medeklinkers, spaties, leestekens, cijfers\u2026 alles wat
is geen een klinker.
Typische voorbeelden
[^\s]-- elk "niet-spatie"-teken (equivalent aan\S).[^0-9]-- alles dat geen cijfer is (equivalent aan\D).[^"]+-- "een reeks tekens die geen dubbele aanhalingstekens zijn" (handig om inhoud tussen aanhalingstekens extraheren).
Pattern: "([^"]+)"
Sample: Il libro "Il nome della rosa" e' famoso.De groep ([^"]+) legt alles tussen aanhalingstekens vast stoppend
vóór de volgende ": het is een klassieke truc om de
hebzuchtig versus lui probleem.
Ontkenning en alternatieve wildcards
De genegeerde klasse [^...] gebruikt precies één teken dat GEEN deel uitmaakt van de vermelde set. Het is een krachtig hulpmiddel om te voorkomen dat de engine voorbij kritische scheidingstekens loopt, waardoor ReDoS wordt vermeden die wordt veroorzaakt door oneindige backtracking-lussen.
Probeer het
Extraheer de inhoud van elke tekenreeks tussen dubbele aanhalingstekens, zonder de aanhalingstekens zelf vast te leggen.
Toon hint
Vervang .+ door [^"]+: op deze manier stopt de match bij het volgende citaat.
Oplossing beschikbaar na 3 pogingen
Oefening beoordelen
Vind elk woord dat ALLEEN uit medeklinkers bestaat (geen klinkers, geen cijfers, geen symbolen).
Toon hint
Binnen de haakjes kun je klinkerontkenning combineren met \\W (niet-woord) en \\d (cijfers).
Oplossing beschikbaar na 3 pogingen
Extra uitdaging
Match reeksen van een of meer tekens, waarbij spaties en komma's expliciet worden uitgesloten.
Toon hint
Gebruik [^\\s,] met de + kwantor.
Oplossing beschikbaar na 3 pogingen