21

我正在尝试在 R 中做一个后向正则表达式来找到一个模式。我希望这会在'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 的帮助页面特别指出后向应该可以工作:http ://stat.ethz.ch/R-manual/R-patched/library/base/html/regex.html

有任何想法吗?

4

1 回答 1

23

您只需要通过设置切换到 PERL 正则表达式perl = TRUE

于 2012-11-16T16:30:49.387 回答