Mit Ausnahme der Zusicherung der Länge Null wird das Zeichen in der Eingabe beim Abgleich immer verbraucht. Wenn Sie jemals in dem Fall sind, dass Sie ein bestimmtes Zeichen in der Eingabezeichenfolge mehr als einmal erfassen möchten, benötigen Sie eine Bestätigung der Länge Null im regulären Ausdruck.
Es gibt mehrere Zusicherungen mit einer Länge von Null (z. B. ^
(Beginn der Eingabe / Zeile), $
(Ende der Eingabe / Zeile), \b
(Wortgrenze)), aber nur Umschauen ( (?<=)
positiver Blick nach hinten und (?=)
positiver Blick nach vorne) sind möglich dass Sie überlappenden Text von der Eingabe erfassen können. Negative Look-arounds ( (?<!)
negativer Look-Behind, (?!)
negativer Look-Ahead) sind hier nicht sehr nützlich: Wenn sie wahr sind, ist die Erfassung im Inneren fehlgeschlagen. Wenn sie false bestätigen, schlägt die Übereinstimmung fehl. Diese Zusicherungen haben eine Länge von Null (wie bereits erwähnt), was bedeutet, dass sie ohne Verbrauch der Zeichen in der Eingabezeichenfolge bestätigt werden. Sie stimmen tatsächlich mit der leeren Zeichenfolge überein, wenn die Zusicherung erfolgreich ist.
Wenn Sie das oben genannte Wissen anwenden, wäre ein regulärer Ausdruck, der für Ihren Fall funktioniert, Folgendes:
(?=(\w\w))