我有一个字符串“ x --Detroit Tigers” ,我想删除第一个大写字母之前的所有字符,换句话说,我要“ Detroit Tigers” 。如何在R中做到这一点?
答案 0 :(得分:1)
或在基数R
中sub(".*?([A-Z])", "\\1", String)
[1] "Detroit Tigers"
详细信息:
.*? makes a _non-greedy_ match of everything until ...
[A-Z] matches an upper case character
因为[A-Z]用括号括起来,所以匹配字符存储在捕获组中。比赛中的所有内容都将替换为第一个捕获组的内容“ \ 1”,在本例中为第一个大写字母。
答案 1 :(得分:0)
如果您所有的字符串都具有相同的结构,则可以使用 stringr 中的str_sub()
。
library(stringr)
s <- "x --Detroit Tigers"
str_sub(s, 5, 50)
# [1] "Detroit Tigers"
如果不是,则必须标识第一个大写字母
first_upper <- which(grepl("[[:upper:]]", strsplit(s, "")[[1]]) == TRUE)[1]
str_sub(s, first_upper, 50)
# [1] "Detroit Tigers"