Autor Tema: PHP división de cadenas en partes con expresiones regulares o funciones string  (Leído 2603 veces)

sasori11

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
¿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
« Última modificación: 03 de Febrero 2016, 08:46 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
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

sasori11

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
gracias por tu ayuda, enserio me sirvio mucho

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".