Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/01/2014, 07:07
lkriss
 
Fecha de Ingreso: julio-2011
Ubicación: Santiago, Chile.
Mensajes: 95
Antigüedad: 13 años, 4 meses
Puntos: 4
Respuesta: Duda con string

Cita:
Iniciado por Alexis88 Ver Mensaje
Separa cada fragmento de la cadena, separándolos a partir de los espacios en blanco que hay entre ellos, convirtiéndose así en un array, estableces un patrón a buscar (expresión regular), recorres el array y evalúas cada fragmento contenido. Si alguno de estos fragmentos, coincide con la expresión regular, quiere decir que ese es el fragmento que estabas buscando, por lo que solamente quedaría asignarlo a una variable y salir del bucle.

Un ejemplo:
Código PHP:
Ver original
  1. $reg = "/^[A-Z]{2,3}[\d]{3}$/";
  2. $string1 = "USA097 WO : SWAP DE GABINETE";
  3. $string2 = "WO : SWAP DE AV222 GABINETE";
  4. $array1 = explode(" ", $string1);
  5. $array2 = explode(" ", $string2);
  6.  
  7. foreach($array1 as $cadena){
  8.     if(preg_match($reg, $cadena)){
  9.         $objetivo = $cadena;
  10.         break;
  11.     }
  12. }
  13. echo strlen($objetivo) ? $objetivo : "No se encontró la cadena";
  14.  
  15. echo "<br />";
  16.  
  17. foreach($array2 as $cadena){
  18.     if(preg_match($reg, $cadena)){
  19.         $objetivo = $cadena;
  20.         break;
  21.     }
  22. }
  23. echo strlen($objetivo) ? $objetivo : "No se encontró la cadena";

El resultado del algoritmo es:

Código HTML:
Ver original
  1. USA097
  2. AV222

La expresión regular ^[A-Z]{2,3}[\d]{3}$, indica que el fragmento a buscar, debe empezar por un grupo de letras mayúsculas, las cuales deben de ser 2 o 3 y deben seguir 3 números hasta el final de la cadena.

Así es como se ve en ejecución: http://ideone.com/87fuIw

Saludos

Mis disculpas por la demora , ya que el fin de semana me desligo del pc, muchas gracias por la solucion... con tu excelente explicacion ya tengo en mente como hacerlo... les comentare mis avances para que a otra persona le pueda servir.



Saludos :D