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

如何用R的stringr或tidyverse移除字符串中[]及内部内容并保留剩余文本

移除tibble中指定列的[...]前缀

可以用tidyverse生态中的stringr结合dplyr来实现需求,核心是通过正则表达式精准匹配并移除开头的[...]前缀(包括方括号及内部内容,以及后续的空格):

完整代码示例

# 加载tidyverse包
library(tidyverse)

# 你的原始数据框
name=c("john","mary","stef","paul","helen")
var =c("[1127] pizza" , "[1000ui] berger", "[5748A!] pasta", "[8245A&] sweet", "[9893] drink" )
df=tibble(name,var)

# 处理var列:移除开头的[...]前缀
df_cleaned <- df %>%
  mutate(var = str_remove(var, "^\\[.*?\\]\\s*"))

# 查看结果
df_cleaned

正则表达式说明

^\\[.*?\\]\\s*的含义:

  • ^:匹配字符串的开头位置,确保只移除开头的前缀
  • \\[:转义匹配左方括号[(因为[在正则中是特殊字符)
  • .*?:非贪婪匹配任意字符(包括数字、字母、符号),直到遇到右方括号
  • \\]:转义匹配右方括号]
  • \\s*:匹配零个或多个空格,确保把前缀后的空格也一并移除,直接保留有效文本

效果验证

处理后df_cleaned的var列会变成:

[1] "pizza"  "berger" "pasta"  "sweet"  "drink"

对于多词语的情况(比如"[1127] pizza is the best delivery food"),处理后会完整保留"pizza is the best delivery food"。

内容的提问来源于stack exchange,提问作者Homer Jay Simpson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:30:02