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 ne peux 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, par 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 vous battez probablement contre l'échappement de JMP qui se confond avec l'échappement de regex @paul_vezzetti .
Les chaînes JMP constituent un cas particulier de \[ et ]\ partout dans une chaîne JMP pour désactiver l'échappement de JMP.
essayez \!\[ et utilisez simplement un ] . Regex ne devrait pas avoir besoin d'échapper le ] 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 plus graves si vous avez réellement besoin de ]\ dans la regex et cela semble moins clair :
regex("[1 2 3]","\[\[(.*)]]\","\1")J'espère que JMP obtiendra une chaîne entre guillemets regex pour résoudre ce problème de double échappement.