Ho letto una stringa dal file su cui sono stato diviso | carattere. Ad esempio, la stringa èJavascript: espressione regolare per dividere la stringa su caratteri senza caratteri, ad es. | ma ignora |
1|test pattern|prefix|url|postfix
Così divisa deve sempre darmi 5 sottostringhe, che nel caso di cui sopra sono
["1", "test pattern", "prefix", "url", "postfix"]
Il problema arriva quando uno di questi cinque stringhe contiene | carattere. Lo memorizzerei come escape \ |
1|test pattern|prefix|url \| title |postfix
Ora, è possibile vedere che string.split ('|') non mi darà il risultato desiderato. Il risultato desiderato è
["1", "test pattern", "prefix", "url \| title ", "postfix"]
Ho provato alcune espressioni regolari ma nessuna di queste dà il risultato desiderato.
string.split(/[^\\]\|/) //["", "", "prefi", "$url \| $titl", " postfix"]
Sembra che questo è possibile solo con finestre di ricerca negative, ma non ho potuto ottenere uno a lavorare
Immagino che lei non ha il controllo sul personaggio di essere usato all'interno della stringa per separare gli elementi? – Patrick
La stringa restituisce: >> var word = '1 | modello di prova | prefisso | url \ | title | postfix '; >> word "1 | modello di prova | prefisso | url | titolo | postfix" Intendevi averlo come '1 | modello di prova | prefisso | url \\ | titolo | postfix 'invece? –
@Patrick: non riesco a cambiare il delimitatore, perché ora è stato usato in molti file ma posso cambiare il carattere di escape \ – Kashif