Ich versuche zu ermitteln, ob eine angegebene Zeichenfolge Zeichen enthält, die genau zweimal wiederholt werden. Im Folgenden ist der reguläre Ausdruck, die ich verwende:Regulärer Ausdruck, der mit jedem exakt doppelt wiederholten Zeichen übereinstimmt
([a-z])\1(?!\1)
Wenn jedoch gegen folgende Saiten getestet, sowohl die Saiten unten passen zum Muster (obwohl ich verwendet habe (\ 1):?!
>>> re.findall(r'.*([a-z])\1(?!\1)', 'abcdeefg')
['e']
>>> re.findall(r'.*([a-z])\1(?!\1)', 'abcdeeefg')
['e']
nicht sicher, was in dem obigen Muster falsch ist
Wenn es hilft man darüber nachdenkt ... im letzteren Beispiel die Muster entspricht dem 'eef' Teil der Zeichenkette – donkopotamus
Was ist die erwartete Ausgabe, wenn die Eingabe' acedeefg' ist? –
Danke @donkopotamus. Ich stimme zu, es entspricht dem Eef-Anteil. Ich möchte, dass es nur abcdeefg und nicht abcdeeefg –