假设您从以下内容开始:
x <- c("stRing", "strIng", "String", "sTRIng", "string")
Run Code Online (Sandbox Code Playgroud)
你可以试试:
sapply(gregexpr("[A-Z]", x), `[`, 1)
## [1] 3 4 1 2 -1
Run Code Online (Sandbox Code Playgroud)
还有“stringi”包,您可以使用它:
library(stringi)
stri_locate_first_regex(x, "[A-Z]")
## start end
## [1,] 3 3
## [2,] 4 4
## [3,] 1 1
## [4,] 2 2
## [5,] NA NA
Run Code Online (Sandbox Code Playgroud)
正如@lmo 在评论中指出的那样,regexpr也可以工作并且不需要sapply:
regexpr("[A-Z]", x)
## [1] 3 4 1 2 -1
## attr(,"match.length")
## [1] 1 1 1 1 -1
## attr(,"useBytes")
## [1] TRUE
Run Code Online (Sandbox Code Playgroud)