提取最大长度的两个字符串之间的字符串

时间:2019-10-22 21:33:13

标签: r regex stringr

我有很多来自多个合并pdf的文本。我想拿出一节。问题是有时周围的部分没有填充,这会影响文本块中的末尾“字符串标记”。具体来说,结束字符串取决于各个pdf文件之一的填写方式。

我的想法是搜索两个结尾的字符串,并在告知字符串提取器继续前进之前施加最大数量的单词。这是我尝试过的:

my_text <- "NARRATIVE\nsome things happened here\nFROM:\nblah blah blah\n(HOME)\nNARRATIVE\nsomething else \n maybe long\nIMPRESSION:\nblah blah blah\n(HOME)\this keeps going and going until it finally finds\nFROM:"

tofind <- paste(c("NARRATIVE(.*?)\nIMPRESSION","NARRATIVE(.*?)\nFROM:"), collapse="|")
narrative <- as.list(str_extract_all(my_text, regex(tofind, dotall = TRUE)))

不幸的是,这仅执行“ tofind”的第一个参数。我想要:

whatIwant <- c("some things happened here", "something else \n maybe long")

1 个答案:

答案 0 :(得分:0)

如果有人在这里跌跌撞撞,这就是我解决的方法:

tofind <- paste(c("NARRATIVE(.*?)(\nFROM|IMPRESSION)"))

查找FROM或IMPRESSION的第一个匹配项以终止比赛。