Come si sostituiscono le parentesi quadre "[" "]" in una stringa con Regex?So che [ e ] sono caratteri speciali nelle espressioni regolari, ma non riesco a capire la stringa di escape corretta per poterli trattare come un carattere specifico in una stringa di pattern.
Quello che voglio fare, ad esempio, è convertire "[1 1 1]" in "1 1 1".
Ri: Come si sostituiscono le parentesi quadre "[" "]" in una stringa con Regex?Per qualcosa di così semplice non puoi semplicemente usare sostituto?
a = "[1 1 1]";
b = substitute(a, "[", "", "]", "");
show(b);
"1 1 1"
Ri: Come si sostituiscono le parentesi quadre "[" "]" in una stringa con Regex?Forse Problema Regex con caratteri sfuggiti
Probabilmente stai combattendo la fuga di JMP confondendoti con la fuga di regex @paolo_vezzetti .
Le stringhe JMP creano un caso speciale di \[ e ]\ ovunque in una stringa JMP per disattivare l'escape di JMP.
prova \!\[ e usa semplicemente un bare ] . Regex non dovrebbe aver bisogno di sfuggire a ] a meno che non si trovi in una [classe di caratteri].
regex("[1 2 3]","\!\[(.*)]","\1")"1 2 3"
\!\ è la via di fuga di JMP per creare una barra rovesciata letterale. Regex quindi vede \[ e si comporta come previsto.
In alternativa, puoi usare \[ ... ]\ , ma crea problemi peggiori se hai effettivamente bisogno di ]\ nella regex e sembra meno chiaro:
regex("[1 2 3]","\[\[(.*)]]\","\1")Spero che JMP ottenga una stringa quotata da regex per risolvere questo problema di doppia fuga.