[01/29/14 16:42:55, 10.100.120.120, unknown]: spatial_monitor: Alan entered Conference Room (Zone Role contains Person role)
[01/29/14 16:42:57, 10.100.120.120, unknown]: spatial_monitor: Alan left Conference Room (Zone Role contains Person role)
[01/29/14 16:43:00, 10.100.120.120, unknown]: spatial_monitor: Kurt entered Conference Room (Computer desk contains Person role)
[01/29/14 16:43:02, 10.100.120.120, unknown]: spatial_monitor: Kurt left Conference Room (Computer desk contains Person role)
[01/29/14 16:43:03, 10.100.120.120, unknown]: spatial_monitor: Alan entered Conference Room (Zone Role contains Person role)
[01/29/14 16:43:08, 10.100.120.120, unknown]: spatial_monitor: Alan left Conference Room (Zone Role contains Person role)
[01/29/14 16:46:07, 10.100.120.120, unknown]: spatial_monitor: Fred entered Conference Room (Zone Role contains Person role)
[01/29/14 16:46:08, 10.100.120.120, unknown]: spatial_monitor: Fred left Conference Room (Zone Role contains Person role)
我想使用R中str_extract(庫stringr)提取的位置(「會議室」上面的例子中)的名稱下面的文本文件。邏輯是拉動字詞「進入」或「離開」後面的部分。爲此,我有以下的正則表達式
(?<=entered\s)[A-Z][a-z]+\s[A-Z][a-z]+
這在記事本++工作正常,但是當我嵌入此R中,我得到以下錯誤
> tt <- "[01/29/14 16:42:55, 10.100.120.120, unknown]: spatial_monitor: Alan entered Conference Room (Zone Role contains Person role)"
> str_extract(tt, '(?<=entered\\s)[A-Z][a-z]+\\s[A-Z][a-z]+')
Error in regexpr("(?<=entered\\s)[A-Z][a-z]+\\s[A-Z][a-z]+", "[01/29/14 16:42:55, 10.100.120.120, unknown]: spatial_monitor: Alan entered Conference Room (Zone Role contains Person role)", :
invalid regular expression '(?<=entered\s)[A-Z][a-z]+\s[A-Z][a-z]+', reason 'Invalid regexp'
其他答案告訴我,lookahead and lookbehind only work with Perl。所以問題是如何使用str_extract來啓用Perl?或者有更好的方法來做到這一點?提前致謝。
這個工作並沒有採用前瞻/回顧後。如圖所示,將要提取的部分括起來:'library(gsubfn); strapplyc(tt,'entered \\ s([A-Z] [a-z] + \\ s [A-Z] [a-z] +)',simplify = TRUE)' –