IniziaInizia gratis

Il punto interrogativo e i suoi due significati

L'operatore OR è utile se sai esattamente quali opzioni sono valide e se sei sicuro che una delle opzioni sia presente. Ma se vuoi trovare un pattern in cui una parte a volte c'è e a volte no? Qui entra in gioco il punto interrogativo ?:

Il ? può rendere opzionale il gruppo o il carattere precedente. Con esso, un'espressione regolare fa match anche se una certa parte del pattern manca. Attenzione però: se segue un moltiplicatore come * o +, il punto interrogativo può avere un secondo effetto:

Il ? può anche rendere il moltiplicatore precedente "pigro" (lazy) invece che "ingordo" (greedy). Significa che, invece di cercare il numero massimo di caratteri, con il ? l'espressione regolare punta a trovare il numero minimo di corrispondenze nel testo.

Questo esercizio fa parte del corso

Espressioni regolari intermedie in R

Visualizza il corso

Istruzioni dell'esercizio

  • Fai combaciare sia il singolare "Screen" sia il plurale "Screens" rendendo opzionale l'ultima "s".
  • Fai combaciare una quantità qualsiasi di caratteri arbitrari davanti a una virgola usando .*.
  • Fai combaciare lo stesso pattern con un punto interrogativo ? dopo l'asterisco: noti la differenza?

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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 = "___,")
Modifica ed esegui il codice