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 + "})");


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow