首页 > 解决方案 > RegEx 在 "," 或 L," 或 ",N 处拆分字符串

问题描述

我是学习 RegEx 的绝对初学者。我需要根据多个条件将字符串拆分为不同的子字符串。

细绳:

"abc","def",NULL,"ghi",NULL,"jkl"

应该拆分为

[abc, def, NULL, ghi, NULL, jkl]

目前我正在使用String[] split = line.split("\",\"");生成包含在 ... 中并由,分隔的所有子字符串。这可以正常工作,但如果有一个 NULL 值(不包含在“...”中),则子字符串的拆分不正确。

如果给出以下条件之一,是否可以通过使用拆分字符串的正则表达式将字符串拆分为其子字符串?

提前致谢!

标签: javaarraysregexstringsplit

解决方案


    String input = "\"abc\",\"def\",NULL,NULL,\"ghi\",NULL,\"jkl\"";
    String [] split = input.split("(\",\")|(\",)|(,\")|(L,)");
    for (int i = 0; i < split.length; i++) {
        if (split[i].startsWith("\"")) {
            split[i] = split[i].substring(1);
        }
        if (split[i].endsWith("\"")) {
            split[i] = split[i].substring(0, split[i].length() -1);
        }
        if (split[i].equals("NUL")) {
            split[i] = "NULL";
        }
    }

输出

[abc, def, NULL, NULL, ghi, NULL, jkl]

推荐阅读