Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: sasori11 en 01 de Febrero 2016, 01:44

Título: PHP división de cadenas en partes con expresiones regulares o funciones string
Publicado por: sasori11 en 01 de Febrero 2016, 01:44
¿Cuál de los comandos de expresiones regulares (o cualquier otro comando, es solo que creo que lo ideal seria usar expresiones regulares pero no se) debo usar para partir una cadena de string del tipo 3x+45x-33+4x y separar el -33 y asignarlo a una variable y otra aparte asignarle el valor de 3+45+4?

Y luego pueda escribir digamos echo $valor_sin_x.$valor_con_x y me salga -33 y 52?

Sé que esta dificil pero necesito ayuda
Título: Re:PHP división de cadenas en partes con expresiones regulares o funciones string
Publicado por: Ogramar en 03 de Febrero 2016, 09:02
Buenas sasori11

Hay varias formas de resolver este problema

Puedes resolverlo con las funciones para cadenas explicadas en este curso de php: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193. En las entregas CU00821B y CU00828B y CU00829B se habla de funciones para cadenas. Dada la cadena 3x+45x-33+4x podrías ir determinando las posiciones en que aparecen los símbolos + y - e ir introduciendo los resultados en un array. Luego harías la suma de elementos en el array para aquellos números que fueran + y la resta para números que fueran -. Antes tendrías que usar str_replace para eliminar las x.

Otra forma sería usar explode http://php.net/manual/es/function.explode.php para dividir la cadena en fragmentos delimitados por + y delimitados por -. Una vez tengas por separado ambos, usar str_replace para eliminar los símbolos y las x. Finalmente sumar los valores con + y restar los valores con -.

Otra forma sería usar expresiones regulares http://php.net/manual/es/reference.pcre.pattern.syntax.php. Tendrías que definir un patrón formado por el símbolo más seguido de cualquier cantidad de números y almacenar todas las coincidencias en un array. A este añadirle cualquier serie de números no precedida de símbolo (que correspondería al inicio de la cadena que no lleva símobolo). Hacer lo mismo para cualquier serie de números precedida del símbolo -. Finalmente realizar la suma de todas las coincidencias + y todas las coincidencias -.

Todavía pueden plantearse otras formas.

Salu2
Título: Re:PHP división de cadenas en partes con expresiones regulares o funciones string
Publicado por: sasori11 en 05 de Febrero 2016, 01:46
gracias por tu ayuda, enserio me sirvio mucho