如何识别拆分字符串

时间:2017-11-09 01:49:18

标签: java regex string

我的字符串值为"Hello,World\\,,1,2,3",我需要将其分隔为,的分隔符。但是,该方法还需要在分割时识别escpace字符,最终输出需要是一个数组,

[Hello, World,, 1, 2, 3]

我有一个方法可以做但它不能识别转义字符。它在下面提供,

public static String[] tokenize1(String record, char delimiter) {

        String delim = String.valueOf(delimiter);
        String[] arr = record.split(delim);

        return arr;
    }

1 个答案:

答案 0 :(得分:2)

您可以尝试在逗号上进行拆分,但使用负面的lookbehind声明逗号没有被反斜杠转义:

String input = "Hello,World\\,,1,2,3";
String[] parts = input.split("(?<!\\\\),");
for (String part : parts) {
    // uncomment to also remove backslash
    // part = part.replaceAll("\\\\,", ",");
    System.out.println(part);
}

<强>输出:

Hello
World\,
1
2
3

Demo