Foros del Web » Programando para Internet » PHP »

Como extraer partes de una cadena

Estas en el tema de Como extraer partes de una cadena en el foro de PHP en Foros del Web. Hola Amigos foreros. Estoy medio liado con un script que debo crear. Tengo una cadena que es mas o menos asi: Código PHP: $var  =  ...
  #1 (permalink)  
Antiguo 07/01/2011, 13:38
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 20 años
Puntos: 145
Como extraer partes de una cadena

Hola Amigos foreros.

Estoy medio liado con un script que debo crear.

Tengo una cadena que es mas o menos asi:

Código PHP:
$var "texto 1 (15), texto 2 (55), texto 3 (22), texto 4 (37), texto 5 (68) "

y necesito estraer todos los valores que estan dentro de los parentesis.

es decir que me devuelva
Código:
15
55
22
37
68
Alguien conoce alguna funcion o algo que haga eso?

saludos y muchas gracias.
__________________
http://chicho.ninja yiaaaa
  #2 (permalink)  
Antiguo 07/01/2011, 13:44
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 8 meses
Puntos: 40
Respuesta: Como extraer partes de una cadena

Esta función es la que necesitas, lo que pasa es que para saber usarla necesitaras saber expresiones regulares.

Aqui tienes un pequeño manual, te aconsejo que le dediques tiempo, que es algo que tarde o temprano todos tenemos que usar.

Un saludo
  #3 (permalink)  
Antiguo 07/01/2011, 13:49
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 20 años
Puntos: 145
Respuesta: Como extraer partes de una cadena

Cita:
Iniciado por Heli0s Ver Mensaje
Esta función es la que necesitas, lo que pasa es que para saber usarla necesitaras saber expresiones regulares.

Aqui tienes un pequeño manual, te aconsejo que le dediques tiempo, que es algo que tarde o temprano todos tenemos que usar.

Un saludo
Revisando gracias.
__________________
http://chicho.ninja yiaaaa
  #4 (permalink)  
Antiguo 07/01/2011, 14:04
 
Fecha de Ingreso: diciembre-2010
Mensajes: 61
Antigüedad: 14 años
Puntos: 4
Respuesta: Como extraer partes de una cadena

Sin que sirva de precedente:
Código:
<?php
$var = "texto 1 (15), texto 2 (55), texto 3 (22), texto 4 (37), texto 5 (68) ";  
preg_match_all('/\b\d{2}\b/',$var,$elnumero);

echo "<pre>";
print_r($elnumero);
echo "</pre>";


?>
Te devuelve:


Array
(
[0] => Array
(
[0] => 15
[1] => 55
[2] => 22
[3] => 37
[4] => 68
)

)


Cómo te comentan anteriormente las expresiones regulares sacan de bastantes apuros te recomiendo que te las estudies un poco.

Hay un programa muy bueno en la siguiente dirección con un montón de ejemplos y que te permite experimentar muy facilmente.

http://gskinner.com/blog/archives/2008/03/regexr_free_onl.html


Un saludo es sólo una idea.
  #5 (permalink)  
Antiguo 07/01/2011, 14:08
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 20 años
Puntos: 145
Respuesta: Como extraer partes de una cadena

Gracias yop289, justo lo que necesitaba.

Es cierto que le he hecho el quite a las expresiones regulares, pero ya son necesarias, sobre todo en el proyecto q estoy.

saludos y muchas gracias
__________________
http://chicho.ninja yiaaaa
  #6 (permalink)  
Antiguo 07/01/2011, 14:26
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 20 años
Puntos: 145
Respuesta: Como extraer partes de una cadena

yop289

Finalmente no me funciono, el que hiciste tu extrae los numero segun la cantidad de digitos, yo necesito que se muestren los que estan dentro de los parentesis, y pueden ser numeros de 1, 2, 3, 4, n digitos.

Gracias, seguire investigando sobre el tema.
__________________
http://chicho.ninja yiaaaa
  #7 (permalink)  
Antiguo 07/01/2011, 14:42
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Como extraer partes de una cadena

A ver si algo asi te sirve:

Código PHP:
Ver original
  1. $pattern = "/(?<=\()\d+(?=\))/";

Saludos.
  #8 (permalink)  
Antiguo 07/01/2011, 14:44
 
Fecha de Ingreso: diciembre-2010
Mensajes: 61
Antigüedad: 14 años
Puntos: 4
Respuesta: Como extraer partes de una cadena

en el texto van otros números? O sólo aparecerán número entre parentesis, si es esta segunda opción.

preg_match_all('/\b\d+\b/',$var,$elnumero);


cuando pongas un ejemplo ponlo lo más exacto posible ya que como ves la cosa cambia.
  #9 (permalink)  
Antiguo 07/01/2011, 14:56
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 2 meses
Puntos: 334
Respuesta: Como extraer partes de una cadena

Código PHP:
Ver original
  1. $pattern = '/(\(\d+?\))/';
  #10 (permalink)  
Antiguo 07/01/2011, 15:00
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 20 años
Puntos: 145
Respuesta: Como extraer partes de una cadena

Cita:
Iniciado por masterpuppet Ver Mensaje
A ver si algo asi te sirve:

Código PHP:
Ver original
  1. $pattern = "/(?<=\()\d+(?=\))/";

Saludos.
Guau, este dia me han sorprendido chicos.

gracias, este anda de pelos
__________________
http://chicho.ninja yiaaaa
  #11 (permalink)  
Antiguo 07/01/2011, 15:14
 
Fecha de Ingreso: febrero-2005
Mensajes: 187
Antigüedad: 19 años, 10 meses
Puntos: 2
Respuesta: Como extraer partes de una cadena

hola,

Lo que yo haria seria un explode del string por la coma (,) y asi tendria un array.
Luego hallaria la posicion del cada uno de los parentesis ( y ) con la funcion strpos.
Al tener ambas posiciones uso el substr para extraer el framenteo, asi si tenes problemas con las expresiones regulares lo podes hacer con funciones de cadena.
__________________
___________________________
Hosting y Dominios en colombia
Blog de Cubica
  #12 (permalink)  
Antiguo 07/01/2011, 15:23
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 14 años
Puntos: 51
Respuesta: Como extraer partes de una cadena

Cita:
Iniciado por jossmorenn Ver Mensaje
hola,

Lo que yo haria seria un explode del string por la coma (,) y asi tendria un array.
Luego hallaria la posicion del cada uno de los parentesis ( y ) con la funcion strpos.
Al tener ambas posiciones uso el substr para extraer el framenteo, asi si tenes problemas con las expresiones regulares lo podes hacer con funciones de cadena.
Amigo, la respuesta de yop289 es la mejor opción. Piensa que de tu forma harías muchos procesos que podrías hacerlo solo con 1.

Saludos!
  #13 (permalink)  
Antiguo 07/01/2011, 21:41
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 20 años
Puntos: 145
Respuesta: Como extraer partes de una cadena

Gracias muchachos, lo he resuelto con la Expresion Regular de masterpuppet, funciona para todos los caso.

Saludos y nuevamente gracias.
__________________
http://chicho.ninja yiaaaa

Etiquetas: extraer, partes, cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:16.