J'ai une expression régulière qui, à mon avis, fonctionnait correctement jusqu'à présent. J'ai besoin de faire correspondre un caractère facultatif. Cela peut être là ou non.
Voici deux chaînes. La chaîne du haut correspond alors que la chaîne du bas ne l'est pas. L'absence d'une seule lettre dans la chaîne inférieure est ce qui le fait échouer.
J'aimerais obtenir la lettre unique après les 5 chiffres de départ si elle est là et sinon, continuer à obtenir le reste de la chaîne. Cette lettre peut être A-Z
.
Si je supprime ([A-Z]{1}) +.*? +
de l'expression régulière, cela correspondra à tout ce dont j'ai besoin sauf la lettre, mais c'est assez important.
20000 K Q511195DREWBT E00078748521
30000 K601220PLOPOH Z00054878524
Voici le regex que j'utilise.
/^([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})/