Las expresiones regulares no son mi fuerte
Necesitaba hacer una expresión regular que me permitiera cambiar de las sintaxis Call(Objeto,&ParametroIN, ......, &ParametroOUT) a &ParametroOUT = Objeto.udp(&ParametroIN,......) La expresión regular mas sencilla que encontré (con la invalorable ayuda de Nicolás) , que funciona bien en los casos que los probé es: (\s+)?(call\(({0})([\s\b]*)(,(.*)(,[\s\b]*)(&([a-z0-9\-]+))|,(.*)(&([a-z0-9\-]+)))[\s\b]*\)|(({0})(.call) ?\(((.*)(,[\s\b]*)(&([a-z0-9\-]+))|(.*)(&([a-z0-9\-] +)))[\s\b]*\))) donde debo remplazar {0} por el nombre del objeto. Luego debe remplazar en el código con la expresión super amigable: $1$8$11$19$22 = $3$14.udp($6$17) La potencia de las expresiones regulares es asombrosa, pero también es asombroso lo complejas que pueden quedar con casos bastantes sencillos. PD: La próxima version de KBDoctor, tendrá una opción que identifica los programas que tienen todos los parámetros IN, menos el ultimo OUT y cambia todas las inv...