Introductory Example
library(stringr)
raw.data <-"555-1239Moe Szyslak(636) 555-0113Burns, C. Montgomery555-6542Rev. Timothy Lovejoy555 8904Ned Flanders636-555-3226Simpson, Homer5553642Dr. Julius Hibbert"
names <-unlist(str_extract_all(raw.data, "[[:alpha:]., ]{2,}"))
names
## [1] "Moe Szyslak" "Burns, C. Montgomery" "Rev. Timothy Lovejoy"
## [4] "Ned Flanders" "Simpson, Homer" "Dr. Julius Hibbert"
Question 3
3.b Construct a logical vector indicating whether a character has a title
unlist(str_detect(names, "[A-Za-z][A-Za-z][.]"))
## [1] FALSE FALSE TRUE FALSE FALSE TRUE
titled_name <- unlist(str_extract_all(names, "\\w+[.]\\s\\w+\\s\\w+"))
titled_name
## [1] "Rev. Timothy Lovejoy" "Dr. Julius Hibbert"
3.c Construct a logical vector indicating whether a character has a second name.
unlist(str_detect(names, "\\s\\w[.]\\s\\w+"))
## [1] FALSE TRUE FALSE FALSE FALSE FALSE
Question 4
Question 9
The following code hides a secret message. Crack it with R and regular expressions.
secret_message <- "clcopCow1zmstc0d87wnkig7OvdicpNuggvhryn92Gjuwczi8hqrfpRxs5Aj5dwpn0TanwoUwisdij7Lj8kpf03AT5Idr3coc0bt7yczjatOaootj55t3Nj3ne6c4Sfek.r1w1YwwojigOd6vrfUrbz2.2bkAnbhzgv4R9i05zEcrop.wAgnb.SqoU65fPa1otfb7wEm24k6t3sR9zqe5fy89n6Nd5t9kc4fE905gmc4Rgxo5nhDk!gr"
break_message = unlist(str_extract_all(secret_message, "\\w+[[:punct:]]"))
message = unlist(str_extract_all(break_message, "[[:upper:]]|[[:punct:]]"))
message_readable = paste(message, collapse="")
message_readable
## [1] "CONGRATULATIONS.YOU.ARE.A.SUPERNERD!"