Ich arbeite an einem Projekt in Java, das geschachtelte Zeichenfolgen erfordert.Teilen einer geschachtelten Zeichenfolge, die Anführungszeichen enthält
Für eine Eingabezeichenfolge, die wie folgt im Klartext aussieht:
Das ist „ein String“ und dies ist „ein \“ \ „string“
verschachtelt sein
Das Ergebnis muss die folgenden:
[0] This
[1] is
[2] "a string"
[3] and
[4] this
[5] is
[6] "a \"nested\" string"
Hinweis, dass ich möchte, dass die \"
Sequenzen gehalten werden.
Ich habe die folgende Methode:
public static String[] splitKeepingQuotationMarks(String s);
und ich brauche ein Array von Strings aus den gegebenen s
Parametern durch die gegebenen Regeln zu schaffen, ohne die Verwendung des Java Collection Framework oder seine Derivate.
Ich bin unsicher, wie Sie dieses Problem lösen können.
Kann ein Regex-Ausdruck erstellt werden, der dies lösen würde?
UPDATE basierend auf Fragen von Kommentaren:
- jeder unescaped
"
hat seine Schließung unescaped"
(sie sind symmetrisch) - jede Flucht Charakter
\
auch maskiert werden müssen, wenn wir wörtliche erstellen möchten darstellen es (um Text zu erstellen, der\
darstellt, müssen wir es als\\
schreiben).
@Turtle: Nicht immer. Es teilt die 'geschachtelte' Zeichenfolge auch auf. –
auch wenn Sie auf ein Leerzeichen aufteilen? – Turtle
Das ist keine normale Sprache. Sie benötigen Funktionen, die über normale reguläre Ausdrücke hinausgehen. Look-arounds erweitern Regex über normale Sprachen hinaus, aber da dies wie eine Schulaufgabe klingt, könnte das Ziel darin bestehen, einen Lexer (lexikalischen Analysator) zu schreiben. – jpmc26