【发布时间】:2020-04-27 12:33:37
【问题描述】:
我正在做数百个 URL 重定向,需要提取最后一个正斜杠之后的所有文本,所以:
/blog/2018/9/28/my_article1 变为 /my_article1
理想情况下,我想使用来自tidyverse 的stringr 包。我在这里看到了一个类似的问题(不适用于 R):
Regex start searching from the end of the string (reverse)
...并尝试了这个:
df %>%
mutate(new.page = str_extract(old.page, "/[^\/]+$/"))
... 但得到错误:
Error: '\/' is an unrecognized escape in character string starting ""/[^\/"
我尝试删除转义的反斜杠,但无济于事。
下面是原始 URL 的 dput 表示数据示例,其中 old.page 是我开始的地方,new.page 是我想要到达的地方。
structure(list(old.page = c("/blog/2018/9/28/my_article1", "/blog/2013/05/22/1735",
"/blog/2013/02/27/my-goals", "/blog/2013/01/23/leading-change",
"/blog/2013/11/19/2-blog-posts-in-1"), new.page = c("/my_article1",
"/1735", "/my-goals", "/leading-change", "/2-blog-posts-in-1"
)), class = c("spec_tbl_df", "tbl_df", "tbl", "data.frame"), row.names = c(NA,
-5L))
【问题讨论】:
-
basename()可能是一个简单的解决方案?