【发布时间】:2013-03-31 23:40:57
【问题描述】:
在related post 中,有人问如何从字符串的开头抓取到第一次出现的字符。我想通过询问如何从字符串的某个字符抓取到结尾来扩展我自己对正则表达式的了解。
我如何使用正则表达式(不是strsplit)和 gsub 从第一个空格的开头抓取到字符串的结尾?
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 正则表达式与一般的正则表达式不同
【问题讨论】:
-
您的结果表明您想要从第一个字符到第二个空格的所有内容。
-
我真是个笨蛋。修复了 Matthew。
-
您要求的内容和您显示的最终结果仍然不一致。因此,你会得到两个答案,它们会给你两种不同的东西。
-
我回去使一切保持一致。我很抱歉。我在想一些事情并输入了那个,而不是真正的问题。