我有以下代码和结果:
> x <- c("ABCDE CDEFG FGHIJ")
> x
[1] "ABCDE CDEFG FGHIJ"
> regexpr("D", x)
[1] 4
attr(,"match.length")
[1] 1
regexpr只返回第一次出现的&#34; D&#34;,如何让它返回所有出现的&#34; D&#34;
答案 0 :(得分:2)
你是如此接近 - 只是在帮助文件中regexpr
的几行......
gregexpr("D", x)
# [[1]]
# [1] 4 8
# attr(,"match.length")
# [1] 1 1
# attr(,"useBytes")
# [1] TRUE
答案 1 :(得分:1)
你也可以像这样使用strsplit:
which(unlist(strsplit(x,split=""))=="D")
[1] 4 8
这样你也可以与D完全匹配。
答案 2 :(得分:0)
我确信会有一种纯粹的regex
方法。但是stringr::str_locate_all
就足够了
library(stringr)
unique(unlist(str_locate_all(x, 'D')))
## [1] 4 8