Foros del Web » Programando para Internet » PHP »

Separar palabras de string (pero que esten juntas)

Estas en el tema de Separar palabras de string (pero que esten juntas) en el foro de PHP en Foros del Web. Buenas, Verán, me gustaría separar unas palabras de un string para meterlas en un array. La solución es bastante sencilla, ¿no?: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: ...
  #1 (permalink)  
Antiguo 10/09/2010, 05:15
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 5 meses
Puntos: 74
Separar palabras de string (pero que esten juntas)

Buenas,

Verán, me gustaría separar unas palabras de un string para meterlas en un array.
La solución es bastante sencilla, ¿no?:

Código PHP:
Ver original
  1. $cadena = "Fulano Mengano Pepito";
  2.     $array_cadena = explode(" ",$cadena);
  3.     print_r($array_cadena);


Cuyo resultado es:

Array ( [0] => Fulano [1] => Mengano [2] => Pepito )

Vale, hasta ahí todo bien. Pero ahora me preguntaba yo, y si esos tres nombres no vienen separados por ningún delimitador, sino, todo lo contrario, vienen juntos.

$cadena = "FulanoMenganoPepito";


¿Como podría hacer para que me las separara?

Es que si hago esto:

Código PHP:
Ver original
  1. $cadena = "FulanoMenganoPepito";
  2.     $array_cadena = explode(" ",$cadena);
  3.     print_r($array_cadena);

El resultado como es de esperar es este:
Array ( [0] => FulanoMenganoPepito )

Y entonces, ya no me vale. Pensé que quizás contando el número de caracteres pues igual... pero no me sirve, ya que la cantidad de caracteres pueden variar...

Lo que si sabre de un principio es el total de nombres que va a tener la cadena. En el ejemplo tiene 3. Pero lo que no sabre es la longitud que tendra cada nombre...

No se... ¿hay alguna manera de darle alguna solución a esto?

He buscado en el manual, por google y no he encontrado nada parecido y me temo lo peor


Salduos,
  #2 (permalink)  
Antiguo 10/09/2010, 05:50
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Separar palabras de string (pero que esten juntas)

Usa expresiones regulares, detecta los caracteres en mayúsculas e ingresa aquellos que siguen y sean minúsculas. Algo así
Código PHP:
Ver original
  1. <?php
  2. $str = 'FulanoMenganoPepito';
  3. preg_match_all('/\p{Lu}\p{Ll}*\P{Lu}/', $str, $m);
  4. var_dump($m[0]);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 10/09/2010, 06:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Separar palabras de string (pero que esten juntas)

definitivamente la clave esta en especificar algún delimitador, algo regular... en dicho caso abimaelrc ha contemplado el uso de la mayúscula como delimitador...

¿pero que sucede si no hay mayúsculas?

¿que diferenciaría una palabra de la otra?

en base a esas preguntas se debe ingeniar la forma para extraer los datos...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 13/09/2010, 03:21
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 5 meses
Puntos: 74
Respuesta: Separar palabras de string (pero que esten juntas)

Gracias, me ha servido :)
Claro, es obvio, tiene que tener un delimitador... por eso me resultaba imposible, ya que sabría que tendría que poner algo de delimitador.

La verdad que es interesante el uso de la mayúscula como delimitador. Y luego, como dices pateketrueke debo de formular esas preguntas. Porque claro, el ejemplo esta perfecto, pero y si por lo que sea la cadena es: (FulAnoMenganOPePitO) entre otras cosas! jeje.

Por eso... me ha servido tu ejemplo abimaelrc, a partir de él puedo tirar para adelante e ir dandole respuesta a esas preguntas.

Gracias de nuevo

Etiquetas: palabras, 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 16:13.