Dies ist nicht Ihr richtiger Code. Für den Anfang kompiliert es nicht. Sie haben die Anführungszeichen weggelassen. Wenn wir das beheben, dann haben wir:
Aber das gibt einen Wert von 1 und nicht 2, wie Sie angegeben. Dieser Rückgabewert ist korrekt, da a
mit [_a-zA-Z]
übereinstimmt und dann die Eingabezeichenfolge endet.
Ich erwarte, dass Sie die falsche Regex haben. Vielleicht sollten Sie
^[_a-zA-Z][_a-zA-Z0-9]*$
Die ^
entspricht dem Anfang der Eingabezeichenfolge verwendet werden, mathes die $
das Ende. Vermutlich stammt die Eingabe von einem Quellcode-Tokenizer.
Also die Schlussfolgerung ist, dass es keinen Fehler im Delphi-Regex-Code aus diesem Muster und Eingabe gibt.
Sobald ich ein Problem hatte und dachte "Hey, ich kann Reguläre Ausdrücke verwenden, um dieses Problem zu lösen". Dann hatte ich zwei Probleme. –