Comment remplacer les crochets "[" "]" dans une chaîne par Regex ?Je sais que [ et ] sont des caractères spéciaux dans les expressions régulières, mais je n'arrive pas à trouver la bonne chaîne d'échappement pour pouvoir les traiter comme un caractère spécifique dans une chaîne de modèle.
Ce que je veux faire, à titre d'exemple, c'est convertir "[1 1 1]" en "1 1 1".
Re : Comment remplacer les crochets "[" "]" dans une chaîne par Regex ?Pour quelque chose d'aussi simple, ne pouvez-vous pas simplement utiliser un substitut ?
a = "[1 1 1]";
b = substitute(a, "[", "", "]", "");
show(b);
"1 1 1"
Re : Comment remplacer les crochets "[" "]" dans une chaîne par Regex ?peut être Problème de Regex avec des caractères échappés
Vous luttez probablement contre l'évasion de JMP en vous mêlant à l'évasion d'expression régulière. @paul_vezzetti .
Les chaînes JMP constituent un cas particulier de \[ et ]\ n'importe où dans une chaîne JMP pour désactiver l'échappement de JMP.
essayez \!\[ et utilisez simplement un simple ] . Regex ne devrait pas avoir besoin d'échapper au ] sauf s'il se trouve dans une [classe de caractères].
regex("[1 2 3]","\!\[(.*)]","\1")"1 2 3"
\!\ est l'échappement de JMP pour créer une barre oblique inverse littérale. Regex voit alors le \[ et se comporte comme prévu.
Alternativement, vous pouvez utiliser le \[ ... ]\ , mais cela crée des problèmes pires si vous avez réellement besoin de ]\ dans l'expression régulière et semble moins clair :
regex("[1 2 3]","\[\[(.*)]]\","\1")J'espère que JMP obtiendra une chaîne citée par regex pour résoudre ce problème de double échappement.