Modulelessen (2/4)
Afwisseling: `|`
De pipe | is de OR van regex: het patroon komt overeen als een van de
alternatieven komt overeen. De prioriteit is zeer laag: | scheidt alles
links en rechts ervan tot aan de omsluitende groep of het begin van het patroon.
Pattern: cane|gatto|criceto
Sample: Ho un cane, un gatto e un criceto.
^^^^ ^^^^^ ^^^^^^^Haakjes zorgen voor voorrang
Zonder haakjes bestrijken de alternatieven het begin tot het einde van het patroon. Bijna altijd wil je de OR beperken tot een deel van het patroon: wikkel het in een groep.
Pattern Significato (errato vs corretto)
^a|b$ "inizio + a" oppure "b + fine" (probabilmente sbagliato)
^(a|b)$ "inizio + (a oppure b) + fine" (probabilmente giusto)Over de typische volgorde van alternatieven: zet de meest
specifieke/langste eerst. De motor probeert van links naar rechts en stopt bij de
eerste die overeenkomt met: gat|gatto komt altijd alleen overeen met gat.
Voorrang en isolatie van alternatieven
De operator | heeft een zeer lage prioriteit. Als u ^abc|def$ schrijft, zoekt u naar "een string die begint met abc OF een string die eindigt met def". Om te zoeken naar "begin van string gevolgd door abc of def, gevolgd door einde van string", moet je ^(abc|def)$ schrijven.
Probeer het
Zoek elke keer dat de drie dieren `cane`, `gatto`, `criceto` voorkomen in de tekst (in willekeurige volgorde).
Toon hint
De pijp scheidt alternatieven. Gebruik de g-vlag om ze allemaal te vangen.
Oplossing beschikbaar na 3 pogingen
Oefening beoordelen
Zoek de woorden `gennaio` of `febbraio` ALLEEN als hele woorden (gebruik `\\b` om te voorkomen dat ze overeenkomen met langere woorden). Gebruik haakjes om de afwisseling te beperken.
Toon hint
\\b(gennaio|febbraio)\\b verankert de keuze aan hele woorden.
Oplossing beschikbaar na 3 pogingen
Extra uitdaging
Zoek bestandsnamen die eindigen op de extensie `.jpg`, `.png` of `.gif`.
Toon hint
Gebruik de pijp in een groep om tussen extensies af te wisselen.
Oplossing beschikbaar na 3 pogingen