So che [ e ] sono caratteri speciali nelle espressioni regolari, ma non riesco a capire la giusta stringa di escape 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".
Per qualcosa di così semplice non puoi semplicemente usare un sostituto?
a = "[1 1 1]";
b = substitute(a, "[", "", "]", "");
show(b);
"1 1 1"
può essere Problema di Regex con caratteri di escape
Probabilmente stai combattendo la fuga di JMP che si confonde con la fuga di espressioni regolari @paolo_vezzetti .
Le stringhe JMP costituiscono un caso speciale di \[ e ]\ ovunque in una stringa JMP per disattivare l'escape di JMP.
prova \!\[ e usa solo 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"
\!\ è l'escape di JMP per creare una barra rovesciata letterale. Regex vede quindi \[ e si comporta come previsto.
In alternativa, potresti 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 tra virgolette regolari per risolvere questo doppio problema di escape.