Direct naar de hoofdinhoud
Module 4 · Les 2 van 414/32 in de cursus~10 min
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.

Code
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.

Code
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

Oefening#regex.m4.l2.e1
Pogingen: 0Laden…

Zoek elke keer dat de drie dieren `cane`, `gatto`, `criceto` voorkomen in de tekst (in willekeurige volgorde).

Editor laden…
Toon hint

De pijp scheidt alternatieven. Gebruik de g-vlag om ze allemaal te vangen.

Oplossing beschikbaar na 3 pogingen

Oefening beoordelen

Oefening#regex.m4.l2.e2
Pogingen: 0Laden…

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.

Editor laden…
Toon hint

\\b(gennaio|febbraio)\\b verankert de keuze aan hele woorden.

Oplossing beschikbaar na 3 pogingen

Extra uitdaging

Oefening#regex.m4.l2.e3
Pogingen: 0Laden…

Zoek bestandsnamen die eindigen op de extensie `.jpg`, `.png` of `.gif`.

Editor laden…
Toon hint

Gebruik de pijp in een groep om tussen extensies af te wisselen.

Oplossing beschikbaar na 3 pogingen