J'ai une regex dont je pensais qu'elle fonctionnait correctement jusqu'à présent. J'ai besoin d'une correspondance sur un caractère optionnel. Il peut être présent ou non.
Voici deux chaînes. La corde supérieure est appariée alors que la corde inférieure ne l'est pas. L'absence d'une seule lettre dans la chaîne inférieure est à l'origine de l'échec.
J'aimerais obtenir la lettre qui suit les 5 premiers chiffres, si elle est présente, et sinon, continuer à obtenir le reste de la chaîne. Cette lettre peut être A-Z
.
Si je supprime ([A-Z]{1}) +.*? +
de la regex, elle correspondra à tout ce dont j'ai besoin sauf à la lettre, mais elle est assez importante.
20000 K Q511195DREWBT E00078748521
30000 K601220PLOPOH Z00054878524
Voici la 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})/