Java Language
Aufteilen einer Schnur in Teile mit fester Länge
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 + "})");