Ich habe die folgende Regex entwickelt, die versucht, eine Zeichenfolge mit mindestens einer Ziffer und mindestens einem Kleinbuchstaben zu entsprechen.Warum funktioniert meine Regex nicht, wenn Anfang und Ende von String-Ankern verwendet werden?
(?=.*[a-z])(?=.*\d)
Dies scheint zu funktionieren OK. Zum Beispiel stimmt es abc3 und nicht abc
Sobald ich jedoch die Regex durch Hinzufügen der Anfang und Ende der String-Anker ändern funktioniert es nicht mehr. Würdest du wissen warum?
^(?=.*[a-z])(?=.*\d)$
'$' beendet die Übereinstimmung..basierend testen Sie für einen Kleinbuchstaben, eine Ziffer und eine leere Zeichenfolge zusammen, die nicht möglich ist ..use '^ (? =. * [Az]) (? =. * \ d). * $ '..lookaheads sind von null Breite .. sie verbrauchen keine Zeichen – rock321987
Erklären Sie die obigen Kommentare: die Lookaheads * überprüfen * aber sie tun nicht * verbrauchen * Zeichen. Das einzige, was tatsächlich zusammenpasst, ist '^ $' - eine leere Zeile. Die Lookaheads scheitern, weil nichts "über" das Ende der Kette hinausgehen kann. – usr2564301