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

如何在Tidyverse中生成指定字符集合的所有可能序列?

用Tidyverse实现字符组合生成

步骤拆解

  • 解析输入字符串,提取每个方括号内的字符集合
  • 生成所有可能的字符笛卡尔积组合
  • 拼接每组字符为目标格式的字符串

代码实现

library(tidyverse)

# 输入字符串
input_str <- '[ABC][abcd][XYZ]'

# 1. 提取并拆分字符组
char_groups <- input_str %>%
  str_extract_all("\\[(.*?)\\]", simplify = TRUE) %>%  # 匹配所有方括号包裹的内容
  str_remove_all("\\[|\\]") %>%  # 移除方括号
  str_split("")  # 将每个字符组拆分为单个字符的向量

# 2. 生成所有笛卡尔积组合
combinations <- expand_grid(
  first = char_groups[[1]],
  second = char_groups[[2]],
  third = char_groups[[3]]
)

# 3. 拼接成最终字符串
result <- combinations %>%
  mutate(full_str = str_c(first, second, third)) %>%
  pull(full_str)

# 查看部分结果示例
head(result)

代码说明

  • str_extract_all("\\[(.*?)\\]"):用非贪婪正则匹配,精准提取每个方括号内的字符内容
  • str_split(""):把每个字符组(比如"ABC")拆分为单个字符的向量,方便后续组合
  • expand_grid():Tidyverse内置的笛卡尔积生成工具,自动枚举所有字符组合可能性
  • str_c():按顺序拼接三个字符,得到符合要求的完整字符串

运行后会生成全部3×4×3=36种组合,包含你举例的AcX、BaZ等所有可能结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 04:15:42