elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Extraer Palabra de un String con delimitadores
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Extraer Palabra de un String con delimitadores  (Leído 3,572 veces)
spysecurityca

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Extraer Palabra de un String con delimitadores
« en: 3 Septiembre 2014, 05:45 am »

Si pues.

Quiero por ejemplo extraer una palabra de la siguiente frase:

"quiero tener un Perro muy valiente."

De la cual me gustaría extraer la palabra perro y que apenas detecte el primer espacio luego de terminada la palabra perro termine la busqueda y me arroje dicha palabra por separado.

Se que por ejemplo con strpos puedo darle un indicador del caracter que quiero localizar en este caso "P" pero no sé como darle un final al detectar espacio



En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Extraer Palabra de un String con delimitadores
« Respuesta #1 en: 3 Septiembre 2014, 06:06 am »

Puedes usar $offset de strpos para empezar la busqueda desde la ocurrencia de perro:

Código
  1. <?php
  2. $string = "Hola soy un perroTonto y no soy inteligente";
  3. $perroPos = strpos($string, "perro");
  4. $spacioPos = strpos($string, " ", $perroPos);
  5.  
  6. echo substr($string, $perroPos, $spacioPos-$perroPos);
  7. ?>


En línea

spysecurityca

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Re: Extraer Palabra de un String con delimitadores
« Respuesta #2 en: 3 Septiembre 2014, 06:25 am »

Vale no sabia que strpos me podía establecer un indice al encontrar el needle, muchas gracias.



Me he ideado otra forma.

Código
  1. $frase = "El Perro inteligente ideó otra forma de extraer Palabras";
  2. $palabras=explode(" ", $frase);
  3. for ($i = 0; $i < count($frase); $i++) {
  4. if ($palabras[$i][0]=="P") {
  5. echo $palabras[$i];
  6. }
  7. }

Así puedo filtrar varias palabras con un solo delimitador (en este caso "P") que es en el fondo lo que quería.


Mod: No hacer doble post. Usar etiquetas GeSHi. Normas del suboforo de PHP.
« Última modificación: 3 Septiembre 2014, 07:47 am por #!drvy » En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Extraer Palabra de un String con delimitadores
« Respuesta #3 en: 3 Septiembre 2014, 07:17 am »

Puedes hacer preg_match o preg_match_all igual.

Código
  1. <?php
  2.  
  3. $string = "Busca perros, perrosTontos, perrosInteligentes, perrosBonitos, perrosFeos";
  4.  
  5. preg_match_all("/\b\w*perro\w*\b/", $string, $matches);
  6.  
  7. print_r($matches);
  8.  
  9. ?>

$matches devuelve las palabras que contienen perro. De hecho, esto funciona mejor que hacer explode con espacio o buscar la primera ocurrencia del espacio.

Si te das cuenta, el string te devolvería "perros," con los otros dos metodos y no necesitas la coma.
« Última modificación: 3 Septiembre 2014, 07:20 am por MinusFour » En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Extraer Palabra de un String con delimitadores
« Respuesta #4 en: 3 Septiembre 2014, 16:51 pm »

Me gusta mas la forma de MinusFour, sería lo óptimo, pero también podrías hacer algo mas corto:

Código
  1. <?php
  2. $string = "quiero tener un Perro muy valiente.";
  3. $string = explode('Perro', $string)[1];
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cortar string por palabra numero X
PHP
lucaslopez0000 1 1,868 Último mensaje 2 Mayo 2013, 19:48 pm
por #!drvy
Buscar una palabra dentro de un string
Programación C/C++
kur79 3 16,160 Último mensaje 18 Febrero 2019, 19:48 pm
por Loretz
Imprimir la palabra mas larga de un string C++
Programación C/C++
MellaSystems 8 8,985 Último mensaje 19 Agosto 2016, 23:29 pm
por Skynet96
1ra palabra de un String
Programación C/C++
sora_ori 3 2,203 Último mensaje 21 Febrero 2015, 16:43 pm
por fary
extraer palabra de string
.NET (C#, VB.NET, ASP)
PETTETE 5 4,356 Último mensaje 19 Septiembre 2017, 14:51 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines