Ich habe eine Regex, von der ich dachte, dass sie bis jetzt richtig funktioniert. Ich muss einen optionalen Charakter finden. Es kann da sein oder nicht.
Hier sind zwei Zeichenfolgen. Die obere Zeichenfolge stimmt überein, die untere nicht. Das Fehlen eines einzelnen Buchstabens in der unteren Zeichenfolge führt zum Fehlschlagen.
Ich möchte den einzelnen Buchstaben nach den ersten 5 Ziffern erhalten, wenn er vorhanden ist, und wenn nicht, den Rest der Zeichenfolge weiter abrufen. Dieser Brief kann sein A-Z
.
Wenn ich ([A-Z]{1}) +.*? +
aus der Regex entferne, passt es zu allem, was ich brauche, außer dem Buchstaben, aber es ist irgendwie wichtig.
20000 K Q511195DREWBT E00078748521
30000 K601220PLOPOH Z00054878524
Hier ist der reguläre Ausdruck, den ich verwende.
/^([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})/