为什么gregexpr没有返回所有出现的正则表达式模式?

前端之家收集整理的这篇文章主要介绍了为什么gregexpr没有返回所有出现的正则表达式模式?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下字符串:

FFDEFFDFFDCFFDDFFAAF

和以下正则表达式模式:

FF..FF

运行gregexpr将导致以下结果:

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

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

但是缺少一个匹配,因为模式有三种情况:

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

知道为什么会发生这种情况以及如何解决这个问题?

解决方法

你需要一个前瞻性表达式,你可以使用perl正则表达式:

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

猜你在找的正则表达式相关文章