comment remplacer / insérer un caractère dans le guillemet double d'une chaîneChers tous,
J'ai une chaîne comme celle-ci.
Savez-vous comment remplacer les caractères entre guillemets doubles d'une chaîne
Par exemple
0 " O=" 1 " Identifiant=" U33 "> ==> Par défaut1 " O=" Par défaut2 " Identifiant=" Par défaut3 ">
Sincèrement
ScriptRe : comment remplacer/insérer un caractère dans un guillemet double d'une chaîneRemplacer (ou substituer dans) est une option. N'oubliez pas d'utiliser le caractère d'échappement pour les guillemets doubles.
Names Default To Here(1);
str = "\[<UNIT x="0" y="1" id="U33">]\";
result = "\[<UNIT x="Default1" y="Default2" id="Default3">]\";
new_str = Substitute(str, "\!"0\!"", "\!"Default1\!"", "\!"1\!"", "\!"Default2\!"", "\!"U33\!"", "\!"Default3\!"");
result == new_str;</UNIT></UNIT>
Re : comment remplacer/insérer un caractère dans un guillemet double d'une chaîneCompte tenu des spécificités de l'exemple de chaîne
La fonction substitut() réelle peut être simplifiée pour
Substitute(str, "0", "Default1", "1", "Default2", "U33", "Default3");
Re : comment remplacer/insérer un caractère dans un guillemet double d'une chaîneSalut Jti,
Ça marche!
Même question, mais cette fois comment pourrais-je remplacer les caractères d'une chaîne par une variable
Par exemple:
Default1, Default2 et Default3 sont maintenant des variables et leur valeur serait modifiée
result = "\[<UNIT x="Default1" y="Default2" id="Default3">]\";</UNIT>
Re : comment remplacer/insérer un caractère dans un guillemet double d'une chaîneJ'ai compris ! Merci beaucoup
Re : comment remplacer/insérer un caractère dans un guillemet double d'une chaîneVoici un exemple où le premier élément est remplacé à partir d'une valeur de variables
Names Default To Here(1);
str = "\[<UNIT x="__one__" y="1" id="U33">]\";
sub1 = "theSub1";
mySub = Substitute(str,expr(__one__), sub1, "Default2", "U33", "Default3");</UNIT>
Re : comment remplacer/insérer un caractère dans un guillemet double d'une chaîneJe pense qu'il est assez rare que vous ajoutiez d'abord des noms de variables à la chaîne, puis que vous commenciez à les remplacer par les valeurs, mais vous pouvez le faire avec Eval Insert.
Une meilleure option serait d'y ajouter directement ces valeurs. L'exemple ci-dessous a les deux options, ajoute d'abord ¤Default1¤ et ainsi de suite et les remplace en utilisant Eval Insert Into (voir l'index de script), le suivant utilise le tableau associatif. Le tableau associatif utilise les chaînes qui doivent être remplacées car les clés et les valeurs sont les nouvelles valeurs (j'utiliserais la deuxième option).
Names Default To Here(1);
str = "\[<UNIT x="0" y="1" id="U33">]\";
new_str = Substitute(str, "\!"0\!"", "\!"¤Default1¤\!"", "\!"1\!"", "\!"¤Default2¤\!"", "\!"U33\!"", "\!"¤Default3¤\!"");
Default1 = "test1";
Default2 = "test2";
Default3 = "test3";
Write("Eval Insert into: \!N");
Eval Insert Into(new_str, "¤");
Write(new_str);
Write("\!N\!NAssociative Array:\!N");
aa_replace = Associative Array();
aa_replace["\!"0\!""] = "\!"test1\!"";
aa_replace["\!"1\!""] = "\!"test2\!"";
aa_replace["\!"U33\!""] = "\!"test3\!"";
new_str2 = Substitute(str, aa_replace << get keys, aa_replace << get values);
write(new_str2);</UNIT>Re : comment remplacer/insérer un caractère dans un guillemet double d'une chaîneSi vous connaissez la balise de départ (dans ce cas, "ak:Unit"), vous pouvez utiliser Analyser XML() :
Names Default To Here( 1 );
ex = "\[<UNIT x="0" y="1" id="U33">]\";
Parse XML( ex,
On Element( "ak:Unit", Start Tag( xml = XML Attr() ) ),
);
xml << Remove( "" );
default 1 = "new X";
default 2 = "new Y";
default 3 = "new Id";
new vals = [=>];
new vals["X"] = default 1;
new vals["Y"] = default 2;
new vals["Id"] = default 3;
new string = "<UNIT>";
Write( new string )</UNIT></UNIT>