首页 > 解决方案 > 是否有正则表达式可以在两个正斜杠之间和特定字符串之后查找字符串?[R]

问题描述

我有一个数据框,其中有一列包含这样的 URls:

https://www.facebook.com/nameofpage/posts/13142894231

我试图仅nameofpage将此列的一部分提取到一个新列中。我无法弄清楚如何在该确切位置提取字符串。字符串有时包含文字“.”、文本和数字。

我一直在尝试使用strsplitseparate从 tidyr 取得有限的成功。

tidyr 代码如下所示:

  separate(Link, c(NA, NA, NA, "target"), sep = "/")

但是,这根本不起作用。

我希望将其提取nameofpage到列中,但有时输出实际上是 URL 的另一部分。

标签: rregexregex-lookarounds

解决方案


您可以str_splitstringr包装中使用。

URL = "https://www.facebook.com/nameofpage/posts/13142894231"

library(stringr)

str_split(URL, "/")
[[1]]
[1] "https:"           ""                 "www.facebook.com" "nameofpage"      
[5] "posts"            "13142894231"     

str_split(URL, "/")[[1]][4]
[1] "nameofpage"

推荐阅读