Frågetecknet och dess två betydelser
Eller-operatorn fungerar bra när du vet exakt vilka alternativ som är giltiga och är säker på att ett av dem finns med. Men vad händer om du vill matcha ett mönster där en del ibland finns med och ibland inte? Det är här frågetecknet ? kommer in:
? kan göra den föregående gruppen eller tecknet valfritt. Med det matchar ett reguljärt uttryck även om en viss del av mönstret saknas. Men tänk på att om ? följer efter en multiplikator som * eller + kan frågetecknet få en andra effekt:
? kan också göra den föregående multiplikatorn "lat" i stället för "girig". Det innebär att i stället för att det reguljära uttrycket letar efter så många tecken som möjligt, har ? förmågan att hitta det minsta antalet matchningar.
Den här övningen är en del av kursen
Reguljära uttryck på mellannivå i R
Övningsinstruktioner
- Matcha både singularis
"Screen"och pluralis"Screens"genom att göra det sista"s"valfritt. - Matcha ett slumpmässigt antal godtyckliga tecken framför ett kommatecken med hjälp av
.*. - Matcha samma mönster med ett frågetecken
?efter stjärnan – märker du någon skillnad?
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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 = "___,")