El signo de interrogación y sus dos significados
El operador OR va bien cuando sabes exactamente qué opciones son válidas y estás seguro de que alguna de ellas está presente. Pero ¿y si quieres hacer coincidir un patrón en el que una parte a veces aparece y a veces no? Aquí entra en juego el signo de interrogación ?:
El ? puede hacer opcional el grupo o carácter anterior. Con él, una expresión regular hace coincidencia aunque falte cierta parte del patrón. Pero ojo: si sigue a un multiplicador como * o +, el signo de interrogación puede tener un segundo efecto:
El ? también puede hacer que el multiplicador anterior sea "perezoso" en lugar de "codicioso". Esto significa que, en vez de que las expresiones regulares busquen el número máximo de caracteres, el ? tiene la capacidad de encontrar el número mínimo de coincidencias de texto.
Este ejercicio forma parte del curso
Expresiones regulares intermedias en R
Instrucciones del ejercicio
- Haz coincidir tanto el singular
"Screen"como el plural"Screens"haciendo opcional la última"s". - Haz coincidir una cantidad aleatoria de caracteres cualesquiera delante de una coma usando
.*. - Haz coincidir el mismo patrón con un signo de interrogación
?después del asterisco: ¿notas la diferencia?
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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 = "___,")