Ich habe eine Zeichenfolge aus der Datei gelesen, die ich auf | geteilt habe Charakter. Zum Beispiel ist der StringJavascript - regulärer Ausdruck zum Aufteilen von Strings auf unescaped Zeichen, z. | aber ignoriere |
1|test pattern|prefix|url|postfix
So muss Split geben mir immer 5 Substrings, die im obigen Fall sind
["1", "test pattern", "prefix", "url", "postfix"]
Das Problem kommt, wenn jeder dieser fünf Teil enthält | Charakter. Ich würde es als maskiert speichern
1|test pattern|prefix|url \| title |postfix
Jetzt können Sie sehen, dass string.split ('|') mir nicht das gewünschte Ergebnis geben wird. Das gewünschte Ergebnis ist
Ich habe einige reguläre Ausdrücke versucht, aber keine von ihnen gibt das gewünschte Ergebnis.
string.split(/[^\\]\|/) //["", "", "prefi", "$url \| $titl", " postfix"]
Es sieht wie folgt aus ist nur möglich mit negativen lookbacks aber ich konnte man nicht
Ich nehme an, Sie haben keine Kontrolle über den Charakter zu sein innerhalb der Zeichenfolge verwendet, um die Elemente zu trennen? – Patrick
Ihr String ergibt: >> var word = '1 | Testmuster | Präfix | url \ | Titel | Postfix '; >> Wort "1 | Testmuster | Präfix | URL | Titel | Postfix" Meinst du es als '1 | Testmuster | Präfix | url \\ | Titel | Postfix 'stattdessen? –
@Patrick: Ich kann das Delimeter nicht ändern, weil es jetzt in vielen Dateien verwendet wurde, aber ich kann das Escape-Zeichen ändern \ – Kashif