Suche…


Bemerkungen

Das Ziel hier ist, keinen Inhalt zu verlieren, so dass der Regex keine Eingaben konsumieren muss. Vielmehr muss es zwischen dem letzten Zeichen der vorherigen Zieleingabe und dem ersten Zeichen der nächsten Zieleingabe übereinstimmen. Für 8-stellige Teilzeichenfolgen müssen wir die Eingabe an den unten markierten Stellen aufteilen (dh übereinstimmen):

a b c d e f g h i j k l m n o p q r s t u v w x y z
               ^               ^               ^

Ignorieren Sie die Leerzeichen in der Eingabe, die zwischen den Zeichenpositionen angezeigt werden sollen.

Zerlegen Sie einen String in alle bekannten Strings

Der Trick ist, einen Rückblick mit dem Regex \G , was "Ende des vorherigen Matches" bedeutet:

String[] parts = str.split("(?<=\\G.{8})");

Der Regex entspricht 8 Zeichen nach dem Ende des letzten Matches. Da in diesem Fall die Übereinstimmung null ist, können wir einfacher "8 Zeichen nach der letzten Übereinstimmung" sagen.

Praktischerweise wird \G mit dem Start der Eingabe initialisiert, so dass es auch für den ersten Teil der Eingabe funktioniert.

Unterteilen Sie einen String in Teilstrings mit variabler Länge

Wie das bekannte Längenbeispiel, aber fügen Sie die Länge in Regex ein:

int length = 5;
String[] parts = str.split("(?<=\\G.{" + length + "})");


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow