Wie kann es sein, dass dieser reguläre Ausdruck auch Zeichenfolgen zurückgibt, die einen _ Unterstrich als letztes Zeichen haben?Regulärer Ausdruck funktioniert nicht wie erwartet
Es sollte nur Strings mit alphabetischen Zeichen, gemischte Groß- und Kleinbuchstaben zurückgeben.
However, the regular expression returns: 'action_'
$regEx = '/^([a-zA-Z])[a-zA-Z]*[\S]$|^([a-zA-Z])*[\S]$|^[a-zA-Z]*[\S]$/';
Was versuchen Sie mit Ihrem Ausdruck zu erreichen? –
Warum erscheint \ S in eckigen Klammern? Definiert das nicht eine Zeichenklasse mit zwei Zeichen, "\" und "S"? – Benson
Das ist ein merkwürdiges RE: Sie haben 3 Alternativen und die 2. und 3. Alternativen sind genau gleich, also wird die 3. Alternative niemals übereinstimmen, denn wenn es möglich ist, wird die 2. Alternative bereits übereinstimmen. Auch die zweite Alternative wird nur zusammenpassen, wenn der ([a-zA-Z]) * -Teil mit nichts übereinstimmt, andernfalls wird die erste Alternative übereinstimmen. –