如何使用regexpr获取匹配字符串的多个insances的索引?

时间:2017-01-06 21:30:13

标签: r regex

我希望得到ap字符串ASDAS ap ASDASD ap AS中出现的两个时间的索引。我试过了

regexpr("ap", "ASDAS ap ASDASD ap AS")[1] 

但它只给了我第一场比赛的索引。如何找到ap匹配的两次索引?

2 个答案:

答案 0 :(得分:1)

使用gregexpr

  

gregexpr返回与text相同长度的列表,其中每个元素的格式与regexpr的返回值相同,除了起始位置每个(不相交的)匹配都是

请参阅下面的示例代码:

> gregexpr("ap", "ASDAS ap ASDASD ap AS")[1] 
[[1]]
[1]  7 17
attr(,"match.length")
[1] 2 2
attr(,"useBytes")
[1] TRUE

答案 1 :(得分:1)

我们可以使用str_locate

中的stringr
 library(stringr)
 str_locate_all("ASDAS ap ASDASD ap AS", "ap")
 #[[1]]
 #     start end
 #[1,]     7   8
 #[2,]    17  18