Umgang mit Trennzeichen mit escape-Zeichen in Java-String.split () - Methode
Suchte ich im web für meine Anfrage, aber habe nicht die Antwort, die passt für meine Anforderung genau. Ich habe meine Schnur wie unten:
A|B|C|The Steading\|Keir Allan\|Braco|E
Meine Ausgabe sollte wie folgt Aussehen:
A
B
C
The Steading|Keir Allan|Braco
E
Meine Forderung ist, überspringen Sie die Trennzeichen, wenn es vorangestellt ist die escape-Sequenz. Ich habe versucht, die folgenden mit negativen lookbehinds in String.split()
:
(?<!\\)\|
Aber, mein problem ist das Trennzeichen definiert werden, die durch den Endanwender dynamisch und es muss nicht immer |
. Es kann jedes beliebige Zeichen auf der Tastatur (keine Einschränkungen). Daher meine Zweifel, dass die obigen regex fehlschlagen, die für einige der Sonderzeichen, die nicht erlaubt sind in regex.
Ich wollte nur wissen, ob dies ist der perfekte Weg, es zu tun.
InformationsquelleAutor der Frage user2757740 | 2013-09-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
- Muster.quote()
:Mit Ihrem Beispiel:
Können Sie erweitern diese um eine benutzerdefinierte escape-Sequenz:
InformationsquelleAutor der Antwort arshajii
Ich weiß, dies ist ein Alter thread, aber die lookbehind-Lösung hat ein Problem, dass es nicht erlauben, die Flucht von dem escape-Zeichen (split würde nicht auftreten, auf
A|B|C|The Steading\\|Keir Allan\|Braco|E)
).Die positiven matching-Lösung im thread Regex und entkam und ohne Umschreibung Trennzeichen besser funktioniert (mit änderung mit Hilfe
Pattern.quote()
wenn das Trennzeichen ist dynamisch).InformationsquelleAutor der Antwort Jan Cetkovsky