1

先読み/後読みで正規表現を使用して、医療レポートからテキストをキャプチャしようとしています。

先読みは正常に機能しますが、後読みはまったく機能しません。

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の使用に関するエラーメッセージがあることは知っていますが、先読みが機能するため、後読みも同様に機能するようです。

後読みを間違って使用している可能性がありますが、これを見つけることができるすべての例は構文です。何か助けはありますか?

4

1 に答える 1

3

問題が見つかりました:

perl = TRUE で問題が修正されました。

于 2013-08-02T18:15:59.890 に答える