使用正则表达式从 R 中的 pdf 中提取链接

Extracting links from pdfs in R with a regex

我正在尝试清理 link 的 pdf 列表。我想将其包含在我的清洁功能中,因此使用正则表达式。是的,我花了比我愿意承认的更多的时间来谷歌搜索和浏览这里的问题。 我的 pdf 被分成几行,所以它不是一个连续的字符串。 我有一段代码只给我一个 link 作为结果(即使应该有很多)。 我尝试过的所有其他选项都包含很多我想保留在我的数据集中的文本。

我在我的功能之外尝试了多个选项,但它们不会 运行 用于文本,仅用于示例。

我想在 .org 或 .html 或其他任何内容(例如 /questions/ask/somethingelse

我尝试模拟一些东西

w <- "www.smthing.org/knowledge/school/principal.\r"
z <- "www.oecd.de\r"
x <- "www.bla.pdfwerr\r .irgendwas" # should not catch that, too many characters after the . 
m <-  "           www.cognitioninstitute.org/index.php/Publications/ 
 bla test smth 
  .gtw, www.stmthing-else.html.\r"
n <- "decoy"


l <- list(w,z,x,m,n)

regmatches(l, regexpr("w{3}\.[a-z]*\.[a-z]{2,4}.*?[[:space:]]", l))

我当前的工作状态也只捕获该特定行中的第一次出现,而不是在 space 处停止(在我的示例中为 m 行),然后还包括下一个 link。

您可以使用

regmatches(l, gregexpr("w{3}\.\S*\b", l))

gregexpr 函数可让您提取所有出现的模式。

请注意,大多数用户更喜欢拼写 www 而不是使用 w{3}

图案详情

  • w{3} - 三个 w 个字符
  • \. - 一个点
  • \S* - 零个或多个 non-whitespace 个字符
  • \b - 单词边界。