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

如何从Telegram导出的长字符串列中提取channel_id纯数值

解决方法

通过正则匹配提取channel_id=后跟随的连续数字即可,针对你使用的data.table结构,两种常用实现方案如下:

方案1:搭配stringr包(写法简洁易读)

library(data.table)
library(stringr)

# 直接原位替换channel_id列为提取后的纯数字值
df[, channel_id := str_extract(channel_id, "(?<=channel_id=)\\d+")]

方案2:纯base R实现(无需额外安装依赖包)

library(data.table)

df[, channel_id := regmatches(channel_id, regexpr("(?<=channel_id=)\\d+", channel_id, perl = TRUE))]

规则说明

所用正则(?<=channel_id=)\\d+的匹配逻辑:

  • (?<=channel_id=)为正向后顾断言,限定匹配位置的前缀必须是channel_id=字符串,且这部分前缀不会被计入提取结果
  • \\d+匹配连续的数字序列,对应你需要提取的channel_id值
    运行代码后即可得到你给出的预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:36:04