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$reg = "/^[A-Z]{2,3}[\d]{3}$/";
$string1 = "USA097 WO : SWAP DE GABINETE";
$string2 = "WO : SWAP DE AV222 GABINETE";
foreach($array1 as $cadena){
$objetivo = $cadena;
break;
}
}
echo strlen($objetivo) ?
$objetivo : "No se encontró la cadena";
echo "<br />";
foreach($array2 as $cadena){
$objetivo = $cadena;
break;
}
}
echo strlen($objetivo) ?
$objetivo : "No se encontró la cadena";
El resultado del algoritmo es:
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