在一个
related post中,有人询问如何从字符串的开头到第一次出现的字符.我想通过询问如何从字符串的某个字符抓到最后来扩展我对正则表达式的了解.
我怎么能用gsub的正则表达式(不是strsplit)从第一个空格的开头到字符串的结尾?
dob <- c("9/9/43 12:00 AM/PM","9/17/88 12:00 AM/PM","11/21/48 12:00 AM/PM")
在这里我尝试了:gsub(“.*?”,“”,dob)但它从最后一个空间而不是第一个空间抓取所以我尝试了gsub(“.{1}?”,dob)但它过于贪婪因为这个时期.
sapply(lapply(strsplit(dob,"\\s+"),"[",2:3),paste,collapse=" ") ##[1] "12:00 AM/PM" "12:00 AM/PM" "12:00 AM/PM"
注意:R regex通常与正则表达式不同
解决方法
试试:
gsub("^(.*?) .*$","\\1",dob) # [1] "9/9/43" "9/17/88" "11/21/48"
如果您想从第一个空格到字符串的结尾,请尝试:
gsub("^.*? (.*)$",dob) # [1] "12:00 AM/PM" "12:00 AM/PM" "12:00 AM/PM"