【发布时间】:2020-06-26 03:50:19
【问题描述】:
我有一份手稿,想使用正则表达式从中提取所有引文。处理手稿中的测试样本,我开发了一个正则表达式——见这里:Regex in R: How to extract citations from manuscript。它在名为 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 = "")
但生成的对象仍然有内部划分,这会阻止正则表达式在整个文档上无缝工作。
那么,如何才能将手稿读入或后处理,使其构成单个不间断的字符串?
非常感谢您对这个问题的帮助。
【问题讨论】:
标签: r regex text data-conversion