Java Language
Podział struny na części o stałej długości
Szukaj…
Uwagi
Celem jest, aby nie utracić zawartości, więc wyrażenie regularne nie może pobierać (dopasowywać) żadnych danych wejściowych. Musi raczej pasować między ostatnim znakiem z poprzedniego celu docelowego i pierwszym znakiem z następnego celu docelowego. np. w przypadku 8-znakowych podciągów musimy podzielić dane wejściowe (tzn. dopasować) w miejscach oznaczonych poniżej:
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
^ ^ ^
Zignoruj spacje na wejściu, które były wymagane do wyświetlenia między pozycjami znaków.
Podziel łańcuch na podciągi o znanej długości
Sztuczka polega na tym, aby użyć regex \G
, co oznacza „koniec poprzedniego dopasowania”:
String[] parts = str.split("(?<=\\G.{8})");
Wyrażenie regularne dopasowuje 8 znaków po zakończeniu ostatniego dopasowania. Ponieważ w tym przypadku dopasowanie ma szerokość zerową, moglibyśmy po prostu powiedzieć „8 znaków po ostatnim dopasowaniu”.
Dogodnie, \G
jest inicjalizowane na początku wprowadzania, więc działa również w pierwszej części danych wejściowych.
Podziel łańcuch na podciągi o zmiennej długości
Taki sam jak przykład ze znaną długością, ale wstaw długość do wyrażenia regularnego:
int length = 5;
String[] parts = str.split("(?<=\\G.{" + length + "})");