如何将复杂的文本文档转换为单个字符串

How to convert complex text document to single character string

我有一份手稿,想使用正则表达式从中提取所有引文。使用手稿中的测试样本,我开发了一个正则表达式——参见此处:。它在名为 samp:

的样本上完美运行
str_extract_all(samp, "\([A-Za-z][^)]*\d{4};|;\s[A-Za-z][^)]*\d{4}\)|\([A-Za-z][^)]*\d{4}.*?\)|\b[A-Z][a-z].*\([^A-Za-z)]\w.*?\)|\b[A-Z][a-z].*\(forthcoming\)|\b[A-Z][a-z].*\(in preparation\)|\([A-Za-z][^);]*\d{4}|(?<=;\s)[A-Za-z][^);]*\d{4}")

但是:正则表达式在实际手稿上效果不佳(手稿显然比示例更大,并且可能具有比示例更复杂的内部结构),因为与示例不同,我无法将手稿转换成单一的、连贯的字符串.

我试过这样读入文档:

read.table([my path], header = F,  sep = "\n", fill = F, stringsAsFactors = F, strip.white = T)

我用 paste 将它们融合在一起:

paste0(manuscript$V1, collapse = "")

但是生成的对象仍然有内部分隔,阻止正则表达式在整个文档上无缝工作。

那么如何将手稿读入或post处理成单个不间断的字符串

非常感谢您帮助解决这个问题。

我们可以使用 readLines 将文件内容作为行列表获取,然后将其折叠为单个不间断的字符串。

manuscript <- paste0(readLines(path_to_file), collapse= "")

根据文件的内容,我们可能希望在提取信息之前进行一些预处理。但这应该让我们得到一个表单中的字符串,如您在 post.

中链接的问题中的示例所示