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

使用gsub移除字符串单/双方括号并调整字段顺序的问题

解决方法

你可以用一个正则表达式一次性处理两种括号情况,核心是精准捕获需要保留的内容,丢弃括号及后续无关文本,再交换内容位置:

对应的R代码如下:

df$clean_names <- gsub("^([^,]+),\\s*([^\\[\\s]+).*$", "\\2 \\1", df$names)

代码说明:

  • ^([^,]+):捕获字符串开头到逗号前的所有内容(第1组,即原逗号前的名字)
  • ,\\s*:匹配逗号及逗号后可能存在的任意空格
  • ([^\\[\\s]+):捕获左括号[和空格之前的非空白字符(第2组,即原逗号后需要保留的核心内容)
  • .*$:匹配从当前位置到字符串结尾的所有内容(包含各种括号及后续文本,直接丢弃)
  • \\2 \\1:将捕获的两组内容用空格拼接,交换位置得到目标格式

测试结果:

针对你的示例数据:

Name, Example [A] [[UK
Name2, AnotherExample [[USA

处理后输出:

  • Example Name
  • AnotherExample Name2

如果第二行期望输出是AnotherExample Name(即需要去掉逗号前名字里的数字),可以调整正则对第1组做额外处理:

df$clean_names <- gsub("^([^,0-9]+)[0-9]*,\\s*([^\\[\\s]+).*$", "\\2 \\1", df$names)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 22:55:06