Het vraagteken en zijn twee betekenissen
De of-operator is handig als je precies weet welke opties geldig zijn, en ook zeker weet dat één van die opties voorkomt. Maar wat als je een patroon wilt vinden waarbij een deel soms aanwezig is en soms niet? Daar komt het vraagteken ? om de hoek kijken:
De ? kan de voorafgaande groep of het voorafgaande teken optioneel maken. Daarmee komt een reguliere expressie overeen, ook als een bepaald deel van het patroon ontbreekt. Let wel: als het volgt op een vermenigvuldiger zoals * of +, kan het vraagteken een tweede effect hebben:
De ? kan ook de voorafgaande vermenigvuldiger "lui" maken in plaats van "gulzig". Dit betekent dat reguliere expressies in plaats van naar het maximale aantal tekens te zoeken, met ? juist het minimale aantal tekstmatches proberen te vinden.
Deze oefening maakt deel uit van de cursus
Gevorderde reguliere expressies in R
Oefeninstructies
- Match zowel het enkelvoud
"Screen"als het meervoud"Screens"door de laatste"s"optioneel te maken. - Match een willekeurig aantal willekeurige tekens vóór een komma met
.*. - Match hetzelfde patroon met een vraagteken
?na de ster – zie je het verschil?
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Match both Screen and Screens by making the last "s" optional
str_match(lines, pattern = "Screens___")
# Match a random amount of arbitrary characters, followed by a comma
str_match(lines, pattern = "___,")
# Match the same pattern followed by a comma, but the "lazy" way
str_match(lines, pattern = "___,")