Zacznij terazZacznij za darmo

Znak zapytania i jego dwa znaczenia

Operator "lub" sprawdza się świetnie, gdy dokładnie wiesz, jakie opcje są możliwe i masz pewność, że jedna z nich wystąpi. Co jednak, gdy chcesz dopasować wzorzec, w którym jakaś część jest raz obecna, a innym razem nie? Tu z pomocą przychodzi znak zapytania ?:

? może uczynić poprzedzającą grupę lub znak opcjonalnymi. Dzięki niemu wyrażenie regularne dopasowuje tekst nawet wtedy, gdy pewna część wzorca jest nieobecna. Pamiętaj jednak, że jeśli ? wystąpi po kwantyfikatorze takim jak * lub +, może mieć dodatkowy efekt:

? może też zmienić poprzedzający kwantyfikator z "zachłannego" na "leniwy". Zamiast szukać jak największej liczby znaków, wyrażenie regularne będzie wtedy znajdować jak najmniejszą liczbę dopasowań.

To ćwiczenie jest częścią kursu

Wyrażenia regularne w R – poziom średnio zaawansowany

Zobacz kurs

Instrukcje do ćwiczenia

  • Dopasuj zarówno liczbę pojedynczą "Screen", jak i liczbę mnogą "Screens", czyniąc ostatnie "s" opcjonalnym.
  • Dopasuj dowolną liczbę dowolnych znaków przed przecinkiem, używając .*.
  • Dopasuj ten sam wzorzec ze znakiem zapytania ? po gwiazdce – czy widzisz różnicę?

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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 = "___,")
Edytuj i uruchom kod