我有 "Hello,World\\,,1,2,3"
的字符串值,我需要用 ,
分隔符将其拆分。但是,该方法还需要在分割时识别转义字符,最终输出需要是一个数组,如
[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;
}
最佳答案
您可以尝试在逗号上进行拆分,但使用否定的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
关于java - 分割字符串时如何识别转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47192613/