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

SQL字符串解析需求:多分隔符拆分字符串为多列

多分隔符拆分字符串的可行方案

普通String.Split仅支持单一分隔符,要处理/、(、)这类多分隔符场景,核心思路是一次性匹配所有目标分隔符完成拆分,再过滤拆分产生的空元素。以下是主流编程语言的实现示例:

Python 实现

使用re.split直接匹配所有分隔符:

import re

target_str = "A/B(D)C"
# 正则匹配/、(、)三种分隔符,同时过滤空字符串
split_result = [item for item in re.split(r'[\/\(\)]', target_str) if item]
print(split_result)  # 输出: ['A', 'B', 'D', 'C']

C# 实现

两种方式可选,直接传分隔符数组或用正则:

string targetStr = "A/B(D)C";

// 方式1:给String.Split传入多分隔符数组
char[] separators = { '/', '(', ')' };
string[] result = targetStr.Split(separators, StringSplitOptions.RemoveEmptyEntries);

// 方式2:用正则拆分并过滤空值
using System.Text.RegularExpressions;
string[] regexResult = Regex.Split(targetStr, @"[\/\(\)]").Where(x => !string.IsNullOrEmpty(x)).ToArray();
// 两种方式结果均为: ["A", "B", "D", "C"]

Java 实现

结合正则拆分与流过滤空元素:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class SplitDemo {
    public static void main(String[] args) {
        String targetStr = "A/B(D)C";
        List<String> result = Arrays.stream(targetStr.split("[\\/\\(\\)]"))
                                    .filter(str -> !str.isEmpty())
                                    .collect(Collectors.toList());
        System.out.println(result); // 输出: [A, B, D, C]
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:21:04