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

R语言中移除字符串内带数字的下划线及8位数字前下划线的方法

嘿,这个问题用R里的正则表达式工具就能轻松搞定,我给你分两种需求分别说明:

需求1:移除8位数字前的下划线并删除该8位数字

针对你给出的例子(比如test_folder_20180409→test_folder、test_sql.sql_20180409→test_sql.sql),可以用gsub()函数配合精准的正则表达式实现:

# 处理单个字符串
str1 <- "test_folder_20180409"
gsub("_\\d{8}$", "", str1)
# 输出结果: "test_folder"

str2 <- "test_sql.sql_20180409"
gsub("_\\d{8}$", "", str2)
# 输出结果: "test_sql.sql"

正则说明:

  • _:匹配目标下划线;
  • \\d{8}:匹配正好8位数字(\\d代表数字,{8}指定位数);
  • $:限定匹配的内容必须在字符串结尾(如果你的8位数字可能出现在字符串中间,去掉$即可,比如gsub("_\\d{8}", "", "abc_12345678_def")会得到abc_def)。
需求2:移除所有带下划线的数字部分

如果是要移除所有下划线+任意长度数字的组合(比如test_123_file_4567→test_file),同样用gsub(),只是调整正则表达式:

str3 <- "test_123_file_4567"
gsub("_\\d+", "", str3)
# 输出结果: "test_file"

# 复杂场景测试
str4 <- "abc_9876_x_y_12"
gsub("_\\d+", "", str4)
# 输出结果: "abc_x_y"

正则说明:

  • \\d+:匹配一个或多个数字(+表示至少出现1次),这样不管数字是几位,只要前面跟下划线,都会被匹配并替换为空字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:08:04