/ / Erkennen der Escape-Zeichen zum Zeitpunkt des Aufteilens des Strings - Java, Regex, String

So erkennen Sie die Escape-Zeichen zum Zeitpunkt der Teilung der Zeichenfolge: java, regex, string

Ich habe den String-Wert von "Hello,World\,,1,2,3" und ich brauche es, um mit dem Trennzeichen von geteilt zu werden ,. Die Methode muss jedoch auch die Escpace-Zeichen zum Zeitpunkt der Aufteilung erkennen und schließlich muss die Ausgabe ein Array sein wie:

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

Ich habe eine Methode, um es zu tun, aber es erkennt die Escape-Zeichen nicht.

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

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

return arr;
}

Antworten:

2 für die Antwort № 1

Sie können versuchen, das Komma zu teilen, jedoch mit einem negativen Lookbehind, der besagt, dass das Komma nicht durch einen Backslash maskiert wurde:

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);
}

Ausgabe:

Hello
World,
1
2
3

Demo