Ximorro escribió:Bueno, de experto nada, es que me tocaba los huevs que no salía y me encabezoné
Por cierto avechuche, has puesto esto en el foro de "Preguntas sencillas" ¿¿y mira la que has armado??
Usa el código que te parezca mejor, pero no hace falta que te diga cuál usaría yo, ¡todo eso en una línea!
Y un momento, ¿dices que el código de Chefito es parecido al que tenías? ¡¿Tenías un código y no nos lo has puesto para que tengamos algo con lo que empezar?!
Creo que luego haré pruebas de velocidad, no es relevante porque se va a usar en cadenas pequeñas pero por curiosidad, para saber si las expresiones regulares son más rápidas que el código desarrollado. Supongo que sí más que nada porque el procesamiento de la expresión regular corre en C compilado...
¿UN ERROR? Bueno creo que yo ya paro y más si no vas a usar la expresión regular pero dinos qué es, tengo curiosidad en saber en qué falla...
Estoy ansioso de ver el programa, tiene pinta de ser muy interesante, y más para los que estén estudiando estas cosas.
Además con esa idea se podrían hacer otras cosas, a lo mejor algo parecido para simplificar expresiones aritméticas o algo así.
Si verdad, no era para nada sencilla. Jajajaja
Si tenia con code, pero no lo vi relevante son dos For que recorren un array comprobando, nada mas raro que eso.
Lo que falla es lo siguiente (Ojo que es una modificacion mia) por eso no anda
Código: Seleccionar todo
$res = StringRegExpReplace($cadena, "(\()?(-[[:alnum:]]\^-[[:alnum:]])(?(1)\))", "($2)")
$res = StringRegExpReplace($res, "(\()?([[:alnum:]]\^-[[:alnum:]])(?(1)\))", "($2)")
Ahora si en la misma $Cadena ademas de tener "-0^-0" hay "0^-0", quiero que ponga "(0^-0)", quedando $Cadena = (-0^-0)v(0^-0)
Pero aqui el problema como la segunda condicion es "parecida" a la primera, me deja la cadena asi "(-(0^-0))v(0^-0)" y asi con todas las combinaciones que se den. Quise arreglarlo con @extended, pero no tmp. Al final trate de reducir lo que ya tenia, los primitivos "For" :).
Igual voy a leer lo de StringRegExpReplace para seguir achicando lo que mas se pueda.