Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/06/2016, 00:55
neck
 
Fecha de Ingreso: mayo-2006
Mensajes: 71
Antigüedad: 18 años
Puntos: 0
Problemas con Expresiones regulares

Buenas amigos, estoy realizando un pequeño código que realiza búsquedas de matriculas de vehículos españoles en un correo electrónico. El código realiza búsquedas de las matriculas para posteriormente, cuando se esta visionando el correo la aplicacion ejerza una ayuda y muestre en un lateral información del o los vehículos del que se esta hablando en ese correo para obtener datos al vuelo.

Hasta ahí todo bien, una expresión regular que detecte matriculas es relativamente fácil... Pero no cuando existe diferentes tipos de formatos de matriculas y a esto hay que añadir que cada persona tiende escribirlas de una forma diferente, bien con espacios entre letras y números, con guiones o sin ellos así que tiene que darse en la expresión todos los casos.

Confeccioné el siguiente patrón de búsqueda.

Código:
[A-Za-z]{1,2}[\- ][0-9]{4,5}[\- ][A-Za-z]{1,3}|[A-Za-z]{1,2}[0-9]{4,5}[A-Za-z]{1,3}
Y la búsqueda en el siguiente texto:

Código:
la matricula CO-0000-AX pertenece a córdoba y esta también CO 0000 AX pero con espacios, esta es de un remolque R0000BBR y sin espacios y esta es de las nuevas 7852-FPC y esta con espacios 7852 FPC y esta es sin espacio 00000AXX
El patrón selecciona la mayoría de las matriculas pero tengo un pequeño problema con las matriculas que estas separados por un espacio entre letras y números y las matriculas nuevas que no tienen letras al principio. Realizando pruebas en la web www.regexpal.com/ este es el resultado.

Código:
la matricula CO-0000-AX pertenece a córdoba y esta también CO 0000 AX pero con espacios, esta es de un remolque R0000BBR y sin espacios y esta es de las nuevas 7852-FPC y esta con espacios 7852 FPC y esta es sin espacio 00000AXX
Como ven en la matriculas nuevas que no tienen letras al principio de ellas selección los dos últimos caracteres de la palabra anterior. No existe algún comodín para decirle por ejemplo que excluya seleccionar caracteres que pertenecen a palabras completas?

Muchas gracias foreros, siempre estáis ahí.