cómo reemplazar/insertar carácter en comillas dobles de una cadenaQueridos todos,
Tengo una cadena como esta.
¿Sabes cómo reemplazar caracteres entre comillas dobles de una cadena?
Por ejemplo
0 "Y=" 1 " Identificación=" U33 "> ==> Predeterminado1 "Y=" Predeterminado2 " Identificación=" Predeterminado3 ">
Sinceramente
secuencias de comandosRe: cómo reemplazar/insertar un carácter entre comillas dobles de una cadenaSustituir (o sustituir) es una opción. Solo recuerde usar el carácter de escape para las comillas dobles.
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: cómo reemplazar/insertar un carácter entre comillas dobles de una cadenaDados los detalles de la cadena de ejemplo
La función real replace() se puede simplificar a
Substitute(str, "0", "Default1", "1", "Default2", "U33", "Default3");
Re: cómo reemplazar/insertar un carácter entre comillas dobles de una cadenaHola Jti,
¡Funciona!
La misma pregunta, pero esta vez, ¿cómo podría sustituir los caracteres en una cadena por variable?
Por ejemplo:
Default1, Default2 y Default3 ahora son variables y su valor cambiaría
result = "\[<UNIT x="Default1" y="Default2" id="Default3">]\";</UNIT>
Re: cómo reemplazar/insertar un carácter entre comillas dobles de una cadenaEntiendo ! muchas gracias
Re: cómo reemplazar/insertar un carácter entre comillas dobles de una cadenaAquí hay un ejemplo donde el primer elemento se reemplaza de un valor 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: cómo reemplazar/insertar un carácter entre comillas dobles de una cadenaCreo que muy pocas veces primero agregaría nombres de variables a la cadena y luego comenzaría a reemplazarlos con los valores, pero podría hacerlo con Eval Insert.
Una mejor opción sería agregar directamente esos valores allí. El siguiente ejemplo tiene ambas opciones, primero agrega ¤Default1¤ y así sucesivamente y los reemplaza usando Eval Insert Into (ver índice de secuencias de comandos), el siguiente está usando una matriz asociativa. La matriz asociativa usa las cadenas que se van a reemplazar como claves y los valores son los nuevos valores (yo usaría la segunda opción).
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: cómo reemplazar/insertar un carácter entre comillas dobles de una cadenaSi conoce la etiqueta inicial (en este caso, "ak:Unit"), entonces puede usar Analizar 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>