# Problem 3
raw.data <-"555-1239Moe Szyslak(636) 555-0113Burns, C. Montgomery555-6542Rev. Timothy Lovejoy555 8904Ned Flanders636-555-3226Simpson, Homer5553642Dr. Julius Hibbert"
library(stringr)
name <- unlist(str_extract_all(raw.data, "[[:alpha:]., ]{2,}"))
name
## [1] "Moe Szyslak" "Burns, C. Montgomery" "Rev. Timothy Lovejoy"
## [4] "Ned Flanders" "Simpson, Homer" "Dr. Julius Hibbert"
# Problem 3.1; FirstName LastName
fname_lname <- function (string)
{
str_replace( paste (rev(unlist (strsplit (str_replace(string, pattern = "^[[:alpha:]]*\\. ", replacement = ""), '\\, '))), collapse=" "),pattern=" [[:alpha:]]* ", replacement=" ")
}
name1<-sapply(name,fname_lname)
name1
## Moe Szyslak Burns, C. Montgomery Rev. Timothy Lovejoy
## "Moe Szyslak" "C. Burns" "Timothy Lovejoy"
## Ned Flanders Simpson, Homer Dr. Julius Hibbert
## "Ned Flanders" "Homer Simpson" "Julius Hibbert"
# Problem 3.2; Check Title
log_title <- function (string)
{
!is.na(str_extract(string, pattern = "^[[:alpha:]]*\\. "))
}
name2<-sapply(name, log_title)
name2
## Moe Szyslak Burns, C. Montgomery Rev. Timothy Lovejoy
## FALSE FALSE TRUE
## Ned Flanders Simpson, Homer Dr. Julius Hibbert
## FALSE FALSE TRUE
# Problem 3.3; Check Second Name
log_sname <- function (string)
{
!is.na(str_extract(string, pattern = "^\\w*[ ,][[:alpha:] ][[:alpha:].]*[ ]"))
}
name3<-sapply(name, log_sname)
name3
## Moe Szyslak Burns, C. Montgomery Rev. Timothy Lovejoy
## FALSE TRUE FALSE
## Ned Flanders Simpson, Homer Dr. Julius Hibbert
## FALSE FALSE FALSE
# exersise 4
# exersise 4.1 [0-9]+\\$ -0-9 matched 1+ times and "$"
test1<-"0$"
str_extract(test1, pattern = "[0-9]+\\$")
## [1] "0$"
# exersise 4.2 \\b[a-z]{1,4}\\b "b" any letter "a-z" one or 4 + "b"
test2<-"bcb"
str_extract(test2, pattern = "\\b[a-z]{1,4}\\b")
## [1] "bcb"
# exersise 4.3 .*?\\.txt$ any character + zero or any times +".txt" in the end
test3<-"file.txt"
str_extract(test3, pattern = ".*?\\.txt$")
## [1] "file.txt"
str_extract(test3, pattern = ".*\\.txt$") ## not 100% sure what is the difference
## [1] "file.txt"
# exersise 4.4 \\d{2}/\\d{2}/\\d{4} digit+digit+"/"+digit+digit+"/"+4 digits
test4<-"12/34/5678"
str_extract(test4, pattern = "\\d{2}/\\d{2}/\\d{4}")
## [1] "12/34/5678"
# exersise 4.5 <(.+?)>.+?</\\1> "<"+"+"+">"+any+matched 1+times+"<"+"/"+"\\"+"1"+">"
test5<-"<.>b</.>"
str_extract(test5, pattern = "<(.+?)>.+?</\\1>")
## [1] "<.>b</.>"
# exersise 9; CONGRATULATIONS YOU ARE A SUPER NERD
mystr<-"clcopCow1zmstc0d87wnkig7OvdicpNuggvhryn92Gjuwczi8hqrfpRxs5Aj5dwpn0TanwoUwisdij7Lj8kpf03AT5Idr3coc0bt7yczjatOaootj55t3Nj3ne6c4Sfek.r1w1YwwojigOd6vrfUrbz2.2bkAnbhzgv4R9i05zEcrop.wAgnb.SqoU65fPa1otfb7wEm24k6t3sR9zqe5fy89n6Nd5t9kc4fE905gmc4Rgxo5nhDk!gr"
myoutput<-str_extract_all(mystr, pattern = "[[:upper:]]")
myoutput
## [[1]]
## [1] "C" "O" "N" "G" "R" "A" "T" "U" "L" "A" "T" "I" "O" "N" "S" "Y" "O"
## [18] "U" "A" "R" "E" "A" "S" "U" "P" "E" "R" "N" "E" "R" "D"