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

如何修改R语言函数:仅保留指定URL后缀,其余转为.com?

问题解决:修改URL后缀的R函数

你的需求是将URL后缀替换为.com,但保留.net、.co、.org、.news、.tv这些后缀,原函数失效大概率是没考虑大小写差异、或未处理无后缀的URL情况,以下是修正后的函数:

library(stringr)

modify_suffix <- function(url) {
  # 提取URL最后一个点后的后缀部分
  suffix <- str_extract(url, "\\.([a-zA-Z0-9]+)$")
  # 定义需要保留的后缀列表
  keep_suffixes <- c(".net", ".co", ".org", ".news", ".tv")
  
  # 两种情况需要修改:后缀不在保留列表,或者URL本身没有后缀
  if (is.na(suffix) || !tolower(suffix) %in% tolower(keep_suffixes)) {
    if (!is.na(suffix)) {
      # 有后缀则替换为.com
      url <- str_replace(url, "\\.[a-zA-Z0-9]+$", ".com")
    } else {
      # 无后缀则直接添加.com
      url <- paste0(url, ".com")
    }
  }
  return(url)
}

# 应用到数据列
domo_data$domain <- sapply(domo_data$domain, modify_suffix)

关键修改说明:

  • 大小写兼容:用tolower()统一转换为小写判断,避免.NET、.ORG这类大写后缀被误替换。
  • 无后缀URL处理:针对不带后缀的URL(比如example),直接在末尾追加.com,补上原函数遗漏的逻辑。
  • 正则严谨性:将\\w+$替换为[a-zA-Z0-9]+$,明确只匹配字母数字,避免意外匹配到下划线(URL后缀通常不含下划线)。

测试验证效果:

  • example.org → 保留为example.org
  • example.xyz → 修改为example.com
  • example.NET → 保留为example.NET(不改变原大小写,仅判断后缀内容)
  • example → 修改为example.com

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 08:52:26