R 3.0 lookbehind не будет работать

Я пытаюсь захватить текст из медицинских отчетов, используя регулярное выражение с просмотром вперед/назад.

lookahead работает нормально, lookbehind вообще не работает:

library(plyr)
library(tm)
library(stringr)
library(gsubfn)

d1 <- c("CCA: 135 cm/sec ICA:", "CCA: 150 cm/sec ICA:")
d1
[1] "CCA: 135 cm/sec ICA:" "CCA: 150 cm/sec ICA:"

# Lookahead works
d1$sub1 <- lapply((strapply(d1,".*?(?=ICA:)")), unique)
Warning message:
In d1$sub1 <- lapply((strapply(d1, ".*?(?=ICA:)")), unique) :
Coercing LHS to a list
d1
[[1]]
[1] "CCA: 135 cm/sec ICA:"

[[2]]
[1] "CCA: 150 cm/sec ICA:"

$sub1
$sub1[[1]]
[1] "CCA: 135 cm/sec " ""                

$sub1[[2]]
[1] "CCA: 150 cm/sec " ""                

# lookbehind fails
d1$sub2 <- lapply((strapply(d1,"(?<=CCA:).*?(?=ICA:)")), unique)

Ошибка:

Error in structure(.External("dotTcl", ..., PACKAGE = "tcltk"), class = "tclObj") : 
[tcl] couldn't compile regular expression pattern: quantifier operand invalid.

Я знаю, что есть сообщение об ошибке при использовании lapply, но, поскольку упреждающий просмотр работает, похоже, что упреждающий просмотр тоже должен работать.

Возможно, я неправильно использую lookbehind, но все примеры, которые я могу найти, это синтаксис. Любая помощь?


person user2547308    schedule 02.08.2013    source источник


Ответы (1)


Нашел проблему:

perl = TRUE исправил проблему.

person user2547308    schedule 02.08.2013
comment
Я почти уверен, что это тот же результат в R2.15 и т. д. - person Ricardo Saporta; 02.08.2013