Regex, wie ein optionales Zeichen gefunden werden soll

Ich habe einen regulären Ausdruck, von dem ich dachte, dass er bis jetzt korrekt funktioniert. Ich muss mit einem optionalen Zeichen übereinstimmen. Es kann dort sein oder es kann 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. Wenn nicht, fahren Sie mit dem Abrufen des Restes der Zeichenfolge fort. Dieser Buchstabe kann @ seA-Z.

Wenn ich entferne([A-Z]{1}) +.*? + von der Regex, es wird alles, was ich brauche, außer dem Buchstaben passen, aber es ist irgendwie wichtig.

20000      K               Q511195DREWBT            E00078748521
30000                      K601220PLOPOH            Z00054878524

Hier ist der Regex, 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})/

Antworten auf die Frage(8)

Ihre Antwort auf die Frage