Je dois construire une chaîne de caractères qui sera transmise à un programme externe. Je dois utiliser la fonction `EvalInsert` pour construire cette chaîne, mais celle-ci doit également contenir une expression régulière incluant le caractère `^`.
J'ai des difficultés à configurer JMP (version 19.1.4) pour qu'il ignore ce caractère dans l'appel à Eval Insert. Voici un exemple :
Str_To_Eval = "Insert_Str";
str = "This is a String containing ^Str_To_Eval^ and it also contains this regex : ^(?!.*_).*";
eval insert(str)
Cela échoue avec l'erreur suivante :
"?" inattendu. Il manque peut-être une parenthèse fermante.
Ligne 1 Colonne 37 : (?!.*_).*►
Préfixer le caractère ^ avec \! ne résout rien. L'entourer de \[ ..]\ ne change rien non plus.
Je peux résoudre le problème comme ceci :
Str_To_Eval = "Insert_Str";
RegExFragment = "^";
str = "This is a String containing ^Str_To_Eval^ and it also contains this regex : ^RegExFragment^(?!.*_).*";
eval insert(str);
ce qui me donne le résultat souhaité.
Je me demandais s'il existait un autre moyen d'échapper le caractère ^ afin que Eval Insert() l'ignore ?
Utilisez un caractère différent de ^. J'utilise généralement ¤.
Names Default To Here(1);
Eval Insert("Today is ¤As Date(Today())¤", "¤");
Évaluation Insertion(chaîne, , , < < )

Merci ! Incroyable que j'utilise JMP depuis près de 20 ans sans jamais avoir réalisé que la fonction Eval Insert() possédait un argument optionnel pour spécifier le délimiteur ! Parfois, ça vaut le coup de lire le manuel 