我有一个手稿,我已将其转换为文本文件。它在大括号中包含许多各种长度的DOI:

{doi: 10.1109/5.771073}

我想为dois grep并将其导出到另一个文本文件中。

我可以使用grep使其仅返回doi,而不返回其所在的整个句子/ vector 吗?

最佳答案

Manuscript = "a lot of text that contains some {doi: 10.1109/5.771073}
some line may contain {doi: 1.2/3.4} and {doi: 5.6/7.8}
Of course other lines may contain nothing interesting"

library(stringr)
Temp = unlist(str_extract_all(Manuscript, "\\{doi:.*?\\}"))
AllDOIs = gsub("\\{doi:\\s*(.*)}", "\\1", Temp)
AllDOIs
[1] "10.1109/5.771073" "1.2/3.4"          "5.6/7.8"

07-23 15:41