Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Buscar en string a partir de una posición

Estas en el tema de Buscar en string a partir de una posición en el foro de PHP en Foros del Web. Buenas, Tenia una duda en PHP a ver si me podeis ayudar. Necesito buscar en una cadena, os pongo un ejemplo: "Texto de prueba #palabra ...
  #1 (permalink)  
Antiguo 06/03/2018, 03:32
 
Fecha de Ingreso: diciembre-2011
Mensajes: 32
Antigüedad: 12 años, 4 meses
Puntos: 0
Buscar en string a partir de una posición

Buenas,

Tenia una duda en PHP a ver si me podeis ayudar.

Necesito buscar en una cadena, os pongo un ejemplo:

"Texto de prueba #palabra blablablabla"

Necesitaria extraer "#pablabra". He visto que con "strpos($string, "#")" puedo sacar la posición donde esta el #, pero como puedo a partir de esa posición extraer la palabra que acabaría en un espacio. Esa palabra puede ser cualquier cosa, un nombre, un objeto etc, por eso digo que la palabra acabaria cuando haya un espacio.

Siento si me explico como el culo xD

gracias por todo
  #2 (permalink)  
Antiguo 06/03/2018, 09:31
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Buscar en string a partir de una posición


Saludo

Pues ya que conoces strpos, es hora que conozcas a substr y a trim.
Con la primera extraerás la palabra, y con la segunda quitarás el espacio.

Y no olvides que strpos maneja un tercer parámetro,
con ese otro dato logras lo que requieres.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Última edición por mortiprogramador; 07/03/2018 a las 06:02
  #3 (permalink)  
Antiguo 07/03/2018, 10:10
 
Fecha de Ingreso: noviembre-2015
Mensajes: 231
Antigüedad: 8 años, 5 meses
Puntos: 86
Respuesta: Buscar en string a partir de una posición

preg_match lo simplifica todo
  #4 (permalink)  
Antiguo 07/03/2018, 11:24
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Buscar en string a partir de una posición

Código PHP:
Ver original
  1. $regex = '/#(\w+)/';
  2. $text =  'Texto de prueba #palabra blablablabla';
  3.  
  4. if (preg_match($regex, $text, $matches)) {
  5.    echo $matches[1];
  6. }
Revisa el expresión porque no la probé.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 07/03/2018, 14:08
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Buscar en string a partir de una posición

Simplemente has esto:

Código PHP:
Ver original
  1. $cadena = "Texto de prueba #palabra blablablabla";
  2.  
  3. preg_match('/#.+\s/', $cadena, $sale, PREG_OFFSET_CAPTURE);
  4. var_dump($sale);

eso retorna un array con la palabra y desde el hashtag hasta el primer espacio luego de ella y la posicion en la que se encuentra:

array(1) { [0]=> array(2) { [0]=> string(9) "#palabra " [1]=> int(16) } }

VER MUESTRA
__________________
[email protected]
HITCEL
  #6 (permalink)  
Antiguo 07/03/2018, 16:50
 
Fecha de Ingreso: diciembre-2011
Mensajes: 32
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Buscar en string a partir de una posición

gracias a todos!!!!
  #7 (permalink)  
Antiguo 08/03/2018, 00:46
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Buscar en string a partir de una posición

Hola minatohd,

Me alegro de que lo hayas solucionado. Por si viene alguien más con tu mismo problema, estaría bien que, además de marcar el tema como solucionado que está muy bien, publicaras la solución.

Etiquetas: nombre, string
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 22:37.