You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中提取字符串最后一组双冒号后的尾部内容

R语言提取字符串中最后一组::后的尾部内容

给定如下字符串向量:

vec <- c("brown::value-twostancenpq", "twitter_ld_homepage:xxxRestApisCreateTweet::create_longesttweetthereis::TaggedId",
         "dumbRestApi::check_allProducts::ProductId", "dumbRestApi::check_allCustomers::CustomerId",
         "twitter_ld_homepage:unknownApisCreateEdit::create_id::NewProfileId")

要提取每个字符串最后一组::之后的内容,有两种简洁的实现方式:

方法一:使用base R的sub函数(无需额外包)

利用正则表达式的贪婪匹配特性,直接替换掉最后一组::之前的所有内容:

sub(".*::", "", vec)

运行结果:

[1] "value-twostancenpq" "TaggedId"           "ProductId"          "CustomerId"         "NewProfileId"

方法二:使用stringr包的str_extract函数

如果习惯使用tidyverse生态工具,可以用正向预查正则精准匹配目标内容:

library(stringr)
str_extract(vec, "(?<=::)[^:]+$")

该正则的含义:

  • (?<=::):正向预查,确保目标内容前是::
  • [^:]+:匹配任意非冒号字符(避免误匹配单个冒号的情况)
  • $:匹配字符串结尾,确保取到的是最后一组::后的内容

运行结果和方法一完全一致。


内容的提问来源于stack exchange,提问作者user2845095

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 22:37:47