Tengo una expresión regular que pensé que funcionaba correctamente hasta ahora. Necesito hacer coincidir un personaje opcional. Puede estar allí o no.
Aquí hay dos cadenas. La cadena superior coincide, mientras que la inferior no. La ausencia de una sola letra en la cadena inferior es lo que hace que falle.
Me gustaría obtener la letra única después de los 5 dígitos iniciales si está allí y si no, continuar obteniendo el resto de la cadena. Esta carta puede ser A-Z
.
Si elimino ([A-Z]{1}) +.*? +
de la expresión regular, coincidirá con todo lo que necesito, excepto la letra, pero es algo importante.
20000 K Q511195DREWBT E00078748521
30000 K601220PLOPOH Z00054878524
Aquí está la expresión regular que estoy usando.
/^([0-9]{5})+.*? ([A-Z]{1}) +.*? +([A-Z]{1})([0-9]{3})([0-9]{3})([A-Z]{3})([A-Z]{3}) +([A-Z])[0-9]{3}([0-9]{4})([0-9]{2})([0-9]{2})/