Direct naar de hoofdinhoud
Module 5 · Les 2 van 418/32 in de cursus~8 min
Modulelessen (2/4)

Bereik binnen klassen: `[a-z0-9]`

Het is vervelend om elk personage één voor één op te sommen. Klassen accepteren bereiken met het koppelteken -: [a-z] komt overeen met elke kleine letter, [0-9] een cijfer, [A-Z] een hoofdletter.

Code
Pattern: [a-z]+
Sample:  Ciao Mondo 123
          ^^^  ^^^^

Het bereik gebruikt de volgorde codepunten (in wezen ASCII voor Latijnse tekens): a-z betekent "elk teken vanaf het codepunt van a tot het codepunt van z", dus 26 letters.

Bereiken combineren

Binnen één klasse kun je meerdere bereiken en individuele karakters combineren:

Code
[a-zA-Z0-9_]   identical to \\w (in ASCII)
[a-fA-F0-9]    hexadecimal digits
[0-9.]         digits or the dot (for decimal numbers)

De volgorde maakt niet uit: [0-9a-z] en [a-z0-9] zijn identiek.

Bereiken en ASCII-tekenvolgorde

Bereiken zoals [a-z] volgen strikt de tekenvolgorde in de ASCII-tabel. Het schrijven van een ongeldig bereik, zoals [z-a], zal een regex-compilatiefout veroorzaken. Aan het begin of einde moet een letterlijk streepje worden geplaatst: [a-z-].

Probeer het

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

Vind elke hexadecimale reeks van 6 tekens (bijvoorbeeld de kleurcode #1a2b3c). Cijfers gaan van 0 tot 9, letters van a tot f (hoofdletters of kleine letters).

Editor laden…
Toon hint

Voeg A-F toe aan het bereik of gebruik de i-vlag.

Oplossing beschikbaar na 3 pogingen

Oefening beoordelen

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

Vind elke productcode bestaande uit 3 hoofdletters gevolgd door 4 cijfers (bijvoorbeeld ABC1234).

Editor laden…
Toon hint

Voor cijfers kun je \\d of het bereik [0-9] gebruiken: deze oefening vereist expliciet [0-9].

Oplossing beschikbaar na 3 pogingen

Extra uitdaging

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

Zoek hexadecimale tekens in de tekst (cijfers 0-9 en letters A-F, zowel hoofdletters als kleine letters).

Editor laden…
Toon hint

Combineer drie bereiken: 0-9, a-f, A-F.

Oplossing beschikbaar na 3 pogingen