【问题标题】:How to read a PDF up to a certain end line?如何阅读 PDF 直到某一行?
【发布时间】:2019-09-01 22:33:34
【问题描述】:

我正在为许多研究论文做 for 循环。这里我想从阅读文档中提取内容。

如何使 R 只读取到最后一行,其中有很多点,并指示为结束行?如下图所示:

[数字] [字母][点][数字]

如果没有多个点,则停止并指示为结束线。

例如我有以下代码,但它不适用于其他文档,因为有时会有不同的结尾。

if(((nrow(pdf[pdf$text == "References ." & pdf$element_id == '2',]) == 1) & !(exists("endline"))) == 1){

endline <- pdf$line_id[pdf$text == "References ." & pdf$element_id == '2']
   }

R 读取整个文档并仅识别到最后一个有许多点的位置。

【问题讨论】:

  • 另外,我也试过这个 grep() 函数 if(nrow(pdf[grep("\\......... ([0-9]{3})$" ,pdf$text, perl = TRUE),])){ endline
  • 嗨@Bakai。您能否编辑您的问题以添加这些元素而不是添加评论?这样,所有相关元素都将直接在您的问题中找到。
  • 只是好奇,这个答案有用吗?

标签: r regex pdf-scraping


【解决方案1】:

这个正则表达式应该会有所帮助:

(\.+\s*\d+\n)(?!\d)

解释:

(\.+\s*\d+\n) - 点和页码(可选空格),后跟行尾字符

(?!\d) - 负前瞻,这意味着下一行的开头没有数字。

负前瞻具有查找模式最后次出现的魔力。

工作示例:https://regex101.com/r/gIrhxf/2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    相关资源
    最近更新 更多