Ver Mensaje Individual
  #3 (permalink)  
Antiguo 10/01/2014, 15:36
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Duda con string

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
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 10/01/2014 a las 20:06