我有以下字符串:

FFDEFFDFFDCFFDDFFAAF


和以下正则表达式模式:

FF..FF


运行gregexpr将导致以下结果:

gregexpr('FF..FF','FFDEFFDFFDCFFDDFFAAF')

[[1]]
[1] 1 8
attr(,"match.length")
[1] 6 6
attr(,"useBytes")
[1] TRUE


但是缺少一个匹配项,因为该模式有3次出现:

FFDEFFDFFDCFFDDFFAAF
FF..FF ||  ||  ||
       FF..FF  ||
           FF..FF


知道为什么会这样以及如何解决吗?

最佳答案

您需要可以使用perl regex执行的前瞻表达式:

gregexpr("(?=FF..FF)", "FFDEFFDFFDCFFDDFFAAF", perl=TRUE)

关于r - R为什么gregexpr不返回所有出现的regex模式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30904089/

10-12 23:34