为什么这个正则表达式在R中使用lookbehinds无效?

时间:2012-11-16 16:19:23

标签: regex r

我正在尝试在R中使用lookbehind正则表达式来查找模式。我希望这会在'bob'中拉出'b',但我得到一个错误。

> regexpr("(?<=a)b","thingamabob")
Error in regexpr("(?<=a)b", "thingamabob") : 
invalid regular expression '(?<=a)b', reason 'Invalid regexp'

这不会引发错误,但也找不到任何错误。

> regexpr("(.<=a)b","thingamabob")
[1] -1
attr(,"match.length")
[1] -1
attr(,"useBytes")
[1] TRUE

我很困惑,因为regexpr的帮助页面明确指出lookbehind应该有效:http://stat.ethz.ch/R-manual/R-patched/library/base/html/regex.html

有什么想法吗?

1 个答案:

答案 0 :(得分:19)

您只需设置perl = TRUE

即可切换到PERL正则表达式