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

如何将指定格式字符串按逗号拆分为列、按分号拆分为行?

拆分字符串为行列格式的解决方案

当然可以轻松实现这个需求!我会针对几种常见工具场景给你具体的实现方法,你可以根据自己的使用环境选择:

方法1:使用Excel(Excel 365/2021及以上版本)

如果你用的是支持动态数组的Excel版本,直接用TEXTSPLIT函数就能一步到位:

  1. 把原始字符串'1,A;2,B;3,C'粘贴到任意单元格(比如A1)
  2. 在B1单元格输入公式:
=TEXTSPLIT(A1, ";", ",")
  1. 按下回车后,Excel会自动生成你想要的二维表格:
IDText
1A
2B
3C

如果是旧版Excel,你可以分两步用「数据分列」功能:

  • 第一步:选中包含字符串的单元格,点击「数据」→「分列」,分隔符选「分号」,把字符串拆分成多行
  • 第二步:对拆分后的每一行内容,再次用「数据分列」,分隔符选「逗号」,拆分成ID和Text两列

方法2:使用Python

用Python处理这类字符串拆分非常灵活,几行代码就能搞定:

# 原始字符串
raw_str = '1,A;2,B;3,C'

# 先按分号拆分成单独的行数据
row_list = raw_str.split(';')

# 打印表头
print("ID\tText")
# 遍历每行,按逗号拆分并打印
for item in row_list:
    id_val, text_val = item.split(',')
    print(f"{id_val}\t{text_val}")

运行这段代码后,控制台会输出:

ID	Text
1	A
2	B
3	C

方法3:使用SQL(以MySQL为例)

如果需要在数据库里处理这个字符串,可以用递归CTE结合字符串函数来实现:

-- 定义原始字符串变量
SET @raw_string = '1,A;2,B;3,C';

-- 递归拆分分号得到每行数据
WITH RECURSIVE split_data AS (
    SELECT 
        SUBSTRING_INDEX(@raw_string, ';', 1) AS single_row,
        SUBSTRING(@raw_string, LENGTH(SUBSTRING_INDEX(@raw_string, ';', 1)) + 2) AS remaining_str
    UNION ALL
    SELECT 
        SUBSTRING_INDEX(remaining_str, ';', 1),
        SUBSTRING(remaining_str, LENGTH(SUBSTRING_INDEX(remaining_str, ';', 1)) + 2)
    FROM split_data
    WHERE remaining_str != ''
)
-- 拆分每行的逗号,得到ID和Text列
SELECT 
    SUBSTRING_INDEX(single_row, ',', 1) AS ID,
    SUBSTRING_INDEX(single_row, ',', -1) AS Text
FROM split_data;

执行这个SQL语句后,查询结果就是你想要的表格形式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:13:09