首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RegEx将字符串拆分为",“或L,”或",N

RegEx将字符串拆分为",“或L,”或",N
EN

Stack Overflow用户
提问于 2020-03-12 18:37:57
回答 3查看 131关注 0票数 0

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

弦乐:

代码语言:javascript
复制
"abc","def",NULL,"ghi",NULL,"jkl"

分拆成

代码语言:javascript
复制
[abc, def, NULL, ghi, NULL, jkl]

目前,我正在使用"..."生成包含在String[] split = line.split("\",\"");中并由分隔的所有子字符串。这很好,但是如果有一个空值(这个值不是用“.”括起来的),那么子字符串是不正确的。

如果给出以下条件之一,是否可以使用RegEx将字符串拆分成子字符串?

  • ,"
  • L“,"
  • ",N

提前感谢!

EN

回答 3

Stack Overflow用户

发布于 2020-03-12 18:43:56

代码语言:javascript
复制
    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";
        }
    }

输出

代码语言:javascript
复制
[abc, def, NULL, NULL, ghi, NULL, jkl]
票数 0
EN

Stack Overflow用户

发布于 2020-03-12 19:09:28

我们可以首先用空字符串替换所有双引号,然后用分隔符逗号分隔得到的字符串。如下所示

代码语言:javascript
复制
String[] strArray = str.replaceAll("\"" , "").split(",");

 String str = "\"abc\",\"def\",NULL,\"ghi\",NULL,\"jkl\"";
 String[] strArray = str.replaceAll("\"" , "").split(",");
 Arrays.asList(strArray).stream().forEach(System.out::println);
票数 0
EN

Stack Overflow用户

发布于 2020-03-12 18:44:15

我觉得你不需要雷杰普。您的问题可以通过split()replace()方法解决。

代码语言:javascript
复制
public static void main(String[] args) {
    String str = "\"abc\",\"def\",NULL,\"ghi\",NULL,\"jkl\"";
    List<String> list = Arrays.stream(str.split(","))
            .map(part -> part.replace("\"", ""))
            .collect(Collectors.toList());
    System.out.println(list);
}

输出:

abc,def,NULL,ghi,NULL,jkl

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60660072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档