删除第一个大写字母之前的字符串

时间:2019-05-13 16:04:38

标签: r

我有一个字符串“ x --Detroit Tigers” ,我想删除第一个大写字母之前的所有字符,换句话说,我要“ Detroit Tigers” 。如何在R中做到这一点?

2 个答案:

答案 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"