我有以下代码和结果:
> x <- c("ABCDE CDEFG FGHIJ")
> x
[1] "ABCDE CDEFG FGHIJ"
> regexpr("D", x)
[1] 4
attr(,"match.length")
[1] 1
regexpr 只返回第一次出现的“D”,我怎样才能让它返回所有出现的“D”
你是如此接近 - 从帮助文件中只剩下几行regexpr
......
gregexpr("D", x)
# [[1]]
# [1] 4 8
# attr(,"match.length")
# [1] 1 1
# attr(,"useBytes")
# [1] TRUE
您也可以像这样使用 strsplit :
which(unlist(strsplit(x,split=""))=="D")
[1] 4 8
这样,您也可以完全匹配 D。
我相信会有一个纯粹的 regex
方法。不过stringr::str_locate_all
就够了
library(stringr)
unique(unlist(str_locate_all(x, 'D')))
## [1] 4 8